home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / lang / sofa.lha / sofa / smalleiffel / bin_c / compile_to_c2.c < prev    next >
C/C++ Source or Header  |  2000-03-25  |  177KB  |  5,632 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.76Beta#1)--
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                  http://SmallEiffel.loria.fr/                --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. T0* r360last(T360* C){
  12. T0* R=NULL;
  13. R=/*(IRF4.6item*/((/*RF2*/(C)->_storage/*0*/))[(/*RF2*/(C)->_upper/*8*/)]/*)*/;
  14. return R;
  15. }
  16.  
  17.  
  18. void r360remove_last(T360* C){
  19. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))-(1);
  20. }
  21.  
  22.  
  23. void r31add_last(T31* C,T0* a1){
  24. T2 _new_capacity=0;
  25. /*[IF*/
  26. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  27. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  28. }
  29.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  30. (/*SFN*/C->_storage)=((T32)(calloc(2,sizeof(T0*))));
  31. (/*SFN*/C->_capacity)=2;
  32. (/*SFN*/C->_upper)=0;
  33. }
  34. else{
  35. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  36. (/*SFN*/C->_storage)=r32realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  37. (/*SFN*/C->_capacity)=_new_capacity;
  38. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  39. }
  40. /*FI]*/
  41. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[(/*RF2*/(C)->_upper/*12*/)]=(a1);
  42. /*]*/
  43. }
  44.  
  45.  
  46. void r31with_capacity(T31* C,T2 a1){
  47. /*[IF*/
  48. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  49. (/*SFN*/C->_storage)=((T32)(calloc(a1,sizeof(T0*))));
  50. (/*SFN*/C->_capacity)=a1;
  51. }
  52. /*FI]*/
  53. (/*SFN*/C->_upper)=-(1);
  54. }
  55.  
  56.  
  57. void r31make(T31* C,T2 a1){
  58. /*[IF*/
  59. if((a1)==(0)){
  60. (/*SFN*/C->_upper)=-(1);
  61. }
  62.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  63. (/*SFN*/C->_storage)=((T32)(calloc(a1,sizeof(T0*))));
  64. (/*SFN*/C->_capacity)=a1;
  65. (/*SFN*/C->_upper)=(a1)-(1);
  66. }
  67.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  68. (/*SFN*/C->_storage)=((T32)(calloc(a1,sizeof(T0*))));
  69. (/*SFN*/C->_capacity)=a1;
  70. (/*SFN*/C->_upper)=(a1)-(1);
  71. }
  72. else{
  73. (/*SFN*/C->_upper)=(a1)-(1);
  74. /*[IRF3.6clear_all*/{T31* C1=C;
  75. T0* __value=NULL;
  76. /*[IRF3.6set_all_with*/{T31* C2=C1;
  77. T0* c1=__value;
  78. r32set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,(/*RF2*/(C2)->_upper/*12*/));
  79. }/*]*/
  80. }/*]*/
  81. }
  82. /*FI]*/
  83. }
  84.  
  85.  
  86. T6 r31fast_has(T31* C,T0* a1){
  87. T6 R=0;
  88. R=r31valid_index(C,r31fast_index_of(C,a1));
  89. return R;
  90. }
  91.  
  92.  
  93. T2 r31fast_index_of(T31* C,T0* a1){
  94. T2 R=0;
  95. R=r32fast_index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  96. return R;
  97. }
  98.  
  99.  
  100. T2 r31index_of(T31* C,T0* a1){
  101. T2 R=0;
  102. R=r32index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  103. return R;
  104. }
  105.  
  106.  
  107. void r31resize(T31* C,T2 a1){
  108. T0* _elt_default=NULL;
  109. T2 _i=0;
  110. T2 _new_capacity=0;
  111. /*[IF*/
  112. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*12*/))+(1)/*)*/)){
  113. (/*SFN*/C->_upper)=(a1)-(1);
  114. }
  115. else{
  116. _new_capacity=a1;
  117. /*[IF*/
  118. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  119. /*[IF*/
  120. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  121. (/*SFN*/C->_storage)=((T32)(calloc(_new_capacity,sizeof(T0*))));
  122. }
  123. else{
  124. (/*SFN*/C->_storage)=r32realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  125. }
  126. /*FI]*/
  127. (/*SFN*/C->_capacity)=_new_capacity;
  128. }
  129. /*FI]*/
  130. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  131. (/*SFN*/C->_upper)=(a1)-(1);
  132. _i=(/*RF2*/(C)->_upper/*12*/);
  133. while (!((_i)==(_new_capacity)))
  134. {
  135. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[_i]=(_elt_default);
  136. /*]*/
  137. _i=(_i)-(1);
  138. }
  139. }
  140. /*FI]*/
  141. }
  142.  
  143.  
  144. T6 r31valid_index(T31* C,T2 a1){
  145. T6 R=0;
  146. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*12*/)));
  147. return R;
  148. }
  149.  
  150.  
  151. T6 r31has(T31* C,T0* a1){
  152. T6 R=0;
  153. R=r31valid_index(C,r31index_of(C,a1));
  154. return R;
  155. }
  156.  
  157.  
  158. void r92add_last(T92* C,T0* a1){
  159. T2 _new_capacity=0;
  160. /*[IF*/
  161. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  162. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  163. }
  164.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  165. (/*SFN*/C->_storage)=((T93)(calloc(2,sizeof(T0*))));
  166. (/*SFN*/C->_capacity)=2;
  167. (/*SFN*/C->_upper)=0;
  168. }
  169. else{
  170. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  171. (/*SFN*/C->_storage)=r93realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  172. (/*SFN*/C->_capacity)=_new_capacity;
  173. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  174. }
  175. /*FI]*/
  176. /*[IRF3.6put*/{T92* C1=C;
  177. T0* b1=a1;
  178. T2 b2=(/*RF2*/(C)->_upper/*12*/);
  179. ((/*RF2*/(C1)->_storage/*4*/))[b2]=(b1);
  180. }/*]*/
  181. }
  182.  
  183.  
  184. void r92with_capacity(T92* C,T2 a1){
  185. /*[IF*/
  186. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  187. (/*SFN*/C->_storage)=((T93)(calloc(a1,sizeof(T0*))));
  188. (/*SFN*/C->_capacity)=a1;
  189. }
  190. /*FI]*/
  191. (/*SFN*/C->_upper)=-(1);
  192. }
  193.  
  194.  
  195. void r92make(T92* C,T2 a1){
  196. /*[IF*/
  197. if((a1)==(0)){
  198. (/*SFN*/C->_upper)=-(1);
  199. }
  200.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  201. (/*SFN*/C->_storage)=((T93)(calloc(a1,sizeof(T0*))));
  202. (/*SFN*/C->_capacity)=a1;
  203. (/*SFN*/C->_upper)=(a1)-(1);
  204. }
  205.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  206. (/*SFN*/C->_storage)=((T93)(calloc(a1,sizeof(T0*))));
  207. (/*SFN*/C->_capacity)=a1;
  208. (/*SFN*/C->_upper)=(a1)-(1);
  209. }
  210. else{
  211. (/*SFN*/C->_upper)=(a1)-(1);
  212. r92clear_all(C);
  213. }
  214. /*FI]*/
  215. }
  216.  
  217.  
  218. T6 r92fast_has(T92* C,T0* a1){
  219. T6 R=0;
  220. R=r92valid_index(C,r92fast_index_of(C,a1));
  221. return R;
  222. }
  223.  
  224.  
  225. T6 r92is_empty(T92* C){
  226. T6 R=0;
  227. R=((/*RF2*/(C)->_upper/*12*/))<(0);
  228. return R;
  229. }
  230.  
  231.  
  232. void r92copy(T92* C,T0* a1){
  233. T2 _new_capacity=0;
  234. T2 _other_upper=0;
  235. _other_upper=/*SSWARF2*//*X92upper*/(/*RF2*/(((T92*)a1))->_upper/*12*/);
  236. /*[IF*/
  237. if((_other_upper)>=(0)){
  238. _new_capacity=(_other_upper)+(1);
  239. /*[IF*/
  240. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  241. (/*SFN*/C->_capacity)=_new_capacity;
  242. (/*SFN*/C->_storage)=((T93)(calloc(_new_capacity,sizeof(T0*))));
  243. }
  244.  else if(((/*RF2*/(C)->_capacity/*8*/))>(0)){
  245. r93clear_all((/*RF2*/(C)->_storage/*4*/),((/*RF2*/(C)->_capacity/*8*/))-(1));
  246. }
  247. /*FI]*/
  248. r93copy_from((/*RF2*/(C)->_storage/*4*/),/*SSWARF2*//*X92storage*/((T93)((/*RF2*/(((T92*)a1))->_storage/*4*/))),_other_upper);
  249. }
  250.  else if(((/*RF2*/(C)->_capacity/*8*/))>(0)){
  251. r93clear_all((/*RF2*/(C)->_storage/*4*/),((/*RF2*/(C)->_capacity/*8*/))-(1));
  252. }
  253. /*FI]*/
  254. (/*SFN*/C->_upper)=_other_upper;
  255. }
  256.  
  257.  
  258. T2 r92fast_index_of(T92* C,T0* a1){
  259. T2 R=0;
  260. R=r93fast_index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  261. return R;
  262. }
  263.  
  264.  
  265. void r92resize(T92* C,T2 a1){
  266. T0* _elt_default=NULL;
  267. T2 _i=0;
  268. T2 _new_capacity=0;
  269. /*[IF*/
  270. if((a1)<=(r92count(C))){
  271. (/*SFN*/C->_upper)=(a1)-(1);
  272. }
  273. else{
  274. _new_capacity=a1;
  275. /*[IF*/
  276. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  277. /*[IF*/
  278. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  279. (/*SFN*/C->_storage)=((T93)(calloc(_new_capacity,sizeof(T0*))));
  280. }
  281. else{
  282. (/*SFN*/C->_storage)=r93realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  283. }
  284. /*FI]*/
  285. (/*SFN*/C->_capacity)=_new_capacity;
  286. }
  287. /*FI]*/
  288. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  289. (/*SFN*/C->_upper)=(a1)-(1);
  290. _i=(/*RF2*/(C)->_upper/*12*/);
  291. while (!((_i)==(_new_capacity)))
  292. {
  293. /*[IRF3.6put*/{T92* C1=C;
  294. T0* b1=_elt_default;
  295. T2 b2=_i;
  296. ((/*RF2*/(C1)->_storage/*4*/))[b2]=(b1);
  297. }/*]*/
  298. _i=(_i)-(1);
  299. }
  300. }
  301. /*FI]*/
  302. }
  303.  
  304.  
  305. T6 r92valid_index(T92* C,T2 a1){
  306. T6 R=0;
  307. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*12*/)));
  308. return R;
  309. }
  310.  
  311.  
  312. T0* r92twin(T92* C){
  313. T0* R=NULL;
  314. R=malloc(sizeof(*C));
  315. *((T92*)R)=M92;
  316. r92copy(((T92*)R),((T0*)C));
  317. return R;
  318. }
  319.  
  320.  
  321. void r92clear_all(T92* C){
  322. T0* _value=NULL;
  323. /*[IRF3.6set_all_with*/{T92* C1=C;
  324. T0* b1=_value;
  325. r93set_all_with((/*RF2*/(C1)->_storage/*4*/),b1,(/*RF2*/(C1)->_upper/*12*/));
  326. }/*]*/
  327. }
  328.  
  329.  
  330. T2 r92count(T92* C){
  331. T2 R=0;
  332. R=((/*RF2*/(C)->_upper/*12*/))+(1);
  333. return R;
  334. }
  335.  
  336.  
  337. T0* r92item(T92* C,T2 a1){
  338. T0* R=NULL;
  339. R=((/*RF2*/(C)->_storage/*4*/))[a1];
  340. return R;
  341. }
  342.  
  343.  
  344. void r56add_last(T56* C,T0* a1){
  345. T2 _new_capacity=0;
  346. /*[IF*/
  347. if((((/*RF2*/(C)->_upper/*8*/))+(1))<=(((/*RF2*/(C)->_capacity/*4*/))-(1))){
  348. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  349. }
  350.  else if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  351. (/*SFN*/C->_storage)=((T54)(calloc(2,sizeof(T0*))));
  352. (/*SFN*/C->_capacity)=2;
  353. (/*SFN*/C->_upper)=0;
  354. }
  355. else{
  356. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  357. (/*SFN*/C->_storage)=r54realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  358. (/*SFN*/C->_capacity)=_new_capacity;
  359. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  360. }
  361. /*FI]*/
  362. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*0*/))[(/*RF2*/(C)->_upper/*8*/)]=(a1);
  363. /*]*/
  364. }
  365.  
  366.  
  367. void r56with_capacity(T56* C,T2 a1){
  368. /*[IF*/
  369. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  370. (/*SFN*/C->_storage)=((T54)(calloc(a1,sizeof(T0*))));
  371. (/*SFN*/C->_capacity)=a1;
  372. }
  373. /*FI]*/
  374. (/*SFN*/C->_upper)=-(1);
  375. }
  376.  
  377.  
  378. void r56make(T56* C,T2 a1){
  379. /*[IF*/
  380. if((a1)==(0)){
  381. (/*SFN*/C->_upper)=-(1);
  382. }
  383.  else if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  384. (/*SFN*/C->_storage)=((T54)(calloc(a1,sizeof(T0*))));
  385. (/*SFN*/C->_capacity)=a1;
  386. (/*SFN*/C->_upper)=(a1)-(1);
  387. }
  388.  else if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  389. (/*SFN*/C->_storage)=((T54)(calloc(a1,sizeof(T0*))));
  390. (/*SFN*/C->_capacity)=a1;
  391. (/*SFN*/C->_upper)=(a1)-(1);
  392. }
  393. else{
  394. (/*SFN*/C->_upper)=(a1)-(1);
  395. /*[IRF3.6clear_all*/{T56* C1=C;
  396. T0* __value=NULL;
  397. /*[IRF3.6set_all_with*/{T56* C2=C1;
  398. T0* c1=__value;
  399. r54set_all_with((/*RF2*/(C2)->_storage/*0*/),c1,(/*RF2*/(C2)->_upper/*8*/));
  400. }/*]*/
  401. }/*]*/
  402. }
  403. /*FI]*/
  404. }
  405.  
  406.  
  407. T6 r56fast_has(T56* C,T0* a1){
  408. T6 R=0;
  409. R=r56valid_index(C,r56fast_index_of(C,a1));
  410. return R;
  411. }
  412.  
  413.  
  414. T2 r56fast_index_of(T56* C,T0* a1){
  415. T2 R=0;
  416. R=r54fast_index_of((/*RF2*/(C)->_storage/*0*/),a1,(/*RF2*/(C)->_upper/*8*/));
  417. return R;
  418. }
  419.  
  420.  
  421. void r56resize(T56* C,T2 a1){
  422. T0* _elt_default=NULL;
  423. T2 _i=0;
  424. T2 _new_capacity=0;
  425. /*[IF*/
  426. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*8*/))+(1)/*)*/)){
  427. (/*SFN*/C->_upper)=(a1)-(1);
  428. }
  429. else{
  430. _new_capacity=a1;
  431. /*[IF*/
  432. if(((/*RF2*/(C)->_capacity/*4*/))<(_new_capacity)){
  433. /*[IF*/
  434. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  435. (/*SFN*/C->_storage)=((T54)(calloc(_new_capacity,sizeof(T0*))));
  436. }
  437. else{
  438. (/*SFN*/C->_storage)=r54realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  439. }
  440. /*FI]*/
  441. (/*SFN*/C->_capacity)=_new_capacity;
  442. }
  443. /*FI]*/
  444. _new_capacity=(/*RF2*/(C)->_upper/*8*/);
  445. (/*SFN*/C->_upper)=(a1)-(1);
  446. _i=(/*RF2*/(C)->_upper/*8*/);
  447. while (!((_i)==(_new_capacity)))
  448. {
  449. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*0*/))[_i]=(_elt_default);
  450. /*]*/
  451. _i=(_i)-(1);
  452. }
  453. }
  454. /*FI]*/
  455. }
  456.  
  457.  
  458. T6 r56valid_index(T56* C,T2 a1){
  459. T6 R=0;
  460. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*8*/)));
  461. return R;
  462. }
  463.  
  464.  
  465. void r323with_capacity(T323* C,T2 a1,T2 a2){
  466. /*[IF*/
  467. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  468. (/*SFN*/C->_storage)=((T324)(calloc(a1,sizeof(T0*))));
  469. (/*SFN*/C->_capacity)=a1;
  470. }
  471. /*FI]*/
  472. (/*SFN*/C->_lower)=a2;
  473. (/*SFN*/C->_upper)=(a2)-(1);
  474. }
  475.  
  476.  
  477. void r323add_last(T323* C,T0* a1){
  478. T2 _new_capacity=0;
  479. /*[IF*/
  480. if(((/*RF2*/(C)->_capacity/*4*/))<((r323count(C))+(1))){
  481. /*[IF*/
  482. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  483. (/*SFN*/C->_capacity)=16;
  484. (/*SFN*/C->_storage)=((T324)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  485. }
  486. else{
  487. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  488. (/*SFN*/C->_storage)=r324realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  489. (/*SFN*/C->_capacity)=_new_capacity;
  490. }
  491. /*FI]*/
  492. }
  493. /*FI]*/
  494. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  495. /*[IRF3.6put*/{T323* C1=C;
  496. T0* b1=a1;
  497. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  498. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  499. }/*]*/
  500. }
  501.  
  502.  
  503. T2 r323count(T323* C){
  504. T2 R=0;
  505. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  506. return R;
  507. }
  508.  
  509.  
  510. void r356make(T356* C,T2 a1){
  511. /*[IF*/
  512. if((a1)==(0)){
  513. (/*SFN*/C->_upper)=-(1);
  514. }
  515.  else if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  516. (/*SFN*/C->_storage)=((T357)(calloc(a1,sizeof(T0*))));
  517. (/*SFN*/C->_capacity)=a1;
  518. (/*SFN*/C->_upper)=(a1)-(1);
  519. }
  520.  else if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  521. (/*SFN*/C->_storage)=((T357)(calloc(a1,sizeof(T0*))));
  522. (/*SFN*/C->_capacity)=a1;
  523. (/*SFN*/C->_upper)=(a1)-(1);
  524. }
  525. else{
  526. (/*SFN*/C->_upper)=(a1)-(1);
  527. /*[IRF3.6clear_all*/{T356* C1=C;
  528. T0* __value=NULL;
  529. /*[IRF3.6set_all_with*/{T356* C2=C1;
  530. T0* c1=__value;
  531. r357set_all_with((/*RF2*/(C2)->_storage/*0*/),c1,(/*RF2*/(C2)->_upper/*8*/));
  532. }/*]*/
  533. }/*]*/
  534. }
  535. /*FI]*/
  536. }
  537.  
  538.  
  539. void r356resize(T356* C,T2 a1){
  540. T0* _elt_default=NULL;
  541. T2 _i=0;
  542. T2 _new_capacity=0;
  543. /*[IF*/
  544. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*8*/))+(1)/*)*/)){
  545. (/*SFN*/C->_upper)=(a1)-(1);
  546. }
  547. else{
  548. _new_capacity=a1;
  549. /*[IF*/
  550. if(((/*RF2*/(C)->_capacity/*4*/))<(_new_capacity)){
  551. /*[IF*/
  552. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  553. (/*SFN*/C->_storage)=((T357)(calloc(_new_capacity,sizeof(T0*))));
  554. }
  555. else{
  556. (/*SFN*/C->_storage)=r357realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  557. }
  558. /*FI]*/
  559. (/*SFN*/C->_capacity)=_new_capacity;
  560. }
  561. /*FI]*/
  562. _new_capacity=(/*RF2*/(C)->_upper/*8*/);
  563. (/*SFN*/C->_upper)=(a1)-(1);
  564. _i=(/*RF2*/(C)->_upper/*8*/);
  565. while (!((_i)==(_new_capacity)))
  566. {
  567. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*0*/))[_i]=(_elt_default);
  568. /*]*/
  569. _i=(_i)-(1);
  570. }
  571. }
  572. /*FI]*/
  573. }
  574.  
  575.  
  576. void r220with_capacity(T220* C,T2 a1,T2 a2){
  577. /*[IF*/
  578. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  579. (/*SFN*/C->_storage)=((T208)(calloc(a1,sizeof(T0*))));
  580. (/*SFN*/C->_capacity)=a1;
  581. }
  582. /*FI]*/
  583. (/*SFN*/C->_lower)=a2;
  584. (/*SFN*/C->_upper)=(a2)-(1);
  585. }
  586.  
  587.  
  588. void r220add_last(T220* C,T0* a1){
  589. T2 _new_capacity=0;
  590. /*[IF*/
  591. if(((/*RF2*/(C)->_capacity/*8*/))<((r220count(C))+(1))){
  592. /*[IF*/
  593. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  594. (/*SFN*/C->_capacity)=16;
  595. (/*SFN*/C->_storage)=((T208)(calloc((/*RF2*/(C)->_capacity/*8*/),sizeof(T0*))));
  596. }
  597. else{
  598. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  599. (/*SFN*/C->_storage)=r208realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  600. (/*SFN*/C->_capacity)=_new_capacity;
  601. }
  602. /*FI]*/
  603. }
  604. /*FI]*/
  605. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  606. /*[IRF3.6put*/{T220* C1=C;
  607. T0* b1=a1;
  608. T2 b2=(/*RF2*/(C)->_upper/*12*/);
  609. ((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
  610. }/*]*/
  611. }
  612.  
  613.  
  614. void r220copy(T220* C,T0* a1){
  615. T2 _needed_capacity=0;
  616. (/*SFN*/C->_lower)=(/*RF2*/(((T220*)a1))->_lower/*16*/);
  617. (/*SFN*/C->_upper)=(/*RF2*/(((T220*)a1))->_upper/*12*/);
  618. _needed_capacity=(((/*RF2*/(C)->_upper/*12*/))-((/*RF2*/(C)->_lower/*16*/)))+(1);
  619. /*[IF*/
  620. if(((/*RF2*/(C)->_capacity/*8*/))<(_needed_capacity)){
  621. (/*SFN*/C->_capacity)=_needed_capacity;
  622. (/*SFN*/C->_storage)=((T208)(calloc((/*RF2*/(C)->_capacity/*8*/),sizeof(T0*))));
  623. }
  624. /*FI]*/
  625. /*[IF*/
  626. if((_needed_capacity)>(0)){
  627. r208copy_from((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(((T220*)a1))->_storage/*4*/),(_needed_capacity)-(1));
  628. }
  629. /*FI]*/
  630. }
  631.  
  632.  
  633. T0* r220twin(T220* C){
  634. T0* R=NULL;
  635. R=malloc(sizeof(*C));
  636. *((T220*)R)=M220;
  637. r220copy(((T220*)R),((T0*)C));
  638. return R;
  639. }
  640.  
  641.  
  642. T2 r220count(T220* C){
  643. T2 R=0;
  644. R=(((/*RF2*/(C)->_upper/*12*/))-((/*RF2*/(C)->_lower/*16*/)))+(1);
  645. return R;
  646. }
  647.  
  648.  
  649. T0* r220item(T220* C,T2 a1){
  650. T0* R=NULL;
  651. R=((/*RF2*/(C)->_storage/*4*/))[(a1)-((/*RF2*/(C)->_lower/*16*/))];
  652. return R;
  653. }
  654.  
  655.  
  656. void r79with_capacity(T79* C,T2 a1,T2 a2){
  657. /*[IF*/
  658. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  659. (/*SFN*/C->_storage)=((T80)(calloc(a1,sizeof(T0*))));
  660. (/*SFN*/C->_capacity)=a1;
  661. }
  662. /*FI]*/
  663. (/*SFN*/C->_lower)=a2;
  664. (/*SFN*/C->_upper)=(a2)-(1);
  665. }
  666.  
  667.  
  668. void r79add_last(T79* C,T0* a1){
  669. T2 _new_capacity=0;
  670. /*[IF*/
  671. if(((/*RF2*/(C)->_capacity/*4*/))<((r79count(C))+(1))){
  672. /*[IF*/
  673. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  674. (/*SFN*/C->_capacity)=16;
  675. (/*SFN*/C->_storage)=((T80)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  676. }
  677. else{
  678. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  679. (/*SFN*/C->_storage)=r80realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  680. (/*SFN*/C->_capacity)=_new_capacity;
  681. }
  682. /*FI]*/
  683. }
  684. /*FI]*/
  685. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  686. /*[IRF3.6put*/{T79* C1=C;
  687. T0* b1=a1;
  688. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  689. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  690. }/*]*/
  691. }
  692.  
  693.  
  694. T2 r79count(T79* C){
  695. T2 R=0;
  696. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  697. return R;
  698. }
  699.  
  700.  
  701. T0* r79item(T79* C,T2 a1){
  702. T0* R=NULL;
  703. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  704. return R;
  705. }
  706.  
  707.  
  708. void r391add_last(T391* C,T0* a1){
  709. T2 _new_capacity=0;
  710. /*[IF*/
  711. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  712. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  713. }
  714.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  715. (/*SFN*/C->_storage)=((T347)(calloc(2,sizeof(T0*))));
  716. (/*SFN*/C->_capacity)=2;
  717. (/*SFN*/C->_upper)=0;
  718. }
  719. else{
  720. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  721. (/*SFN*/C->_storage)=r347realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  722. (/*SFN*/C->_capacity)=_new_capacity;
  723. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  724. }
  725. /*FI]*/
  726. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[(/*RF2*/(C)->_upper/*12*/)]=(a1);
  727. /*]*/
  728. }
  729.  
  730.  
  731. void r391with_capacity(T391* C,T2 a1){
  732. /*[IF*/
  733. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  734. (/*SFN*/C->_storage)=((T347)(calloc(a1,sizeof(T0*))));
  735. (/*SFN*/C->_capacity)=a1;
  736. }
  737. /*FI]*/
  738. (/*SFN*/C->_upper)=-(1);
  739. }
  740.  
  741.  
  742. void r391make(T391* C,T2 a1){
  743. /*[IF*/
  744. if((a1)==(0)){
  745. (/*SFN*/C->_upper)=-(1);
  746. }
  747.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  748. (/*SFN*/C->_storage)=((T347)(calloc(a1,sizeof(T0*))));
  749. (/*SFN*/C->_capacity)=a1;
  750. (/*SFN*/C->_upper)=(a1)-(1);
  751. }
  752.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  753. (/*SFN*/C->_storage)=((T347)(calloc(a1,sizeof(T0*))));
  754. (/*SFN*/C->_capacity)=a1;
  755. (/*SFN*/C->_upper)=(a1)-(1);
  756. }
  757. else{
  758. (/*SFN*/C->_upper)=(a1)-(1);
  759. /*[IRF3.6clear_all*/{T391* C1=C;
  760. T0* __value=NULL;
  761. /*[IRF3.6set_all_with*/{T391* C2=C1;
  762. T0* c1=__value;
  763. r347set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,(/*RF2*/(C2)->_upper/*12*/));
  764. }/*]*/
  765. }/*]*/
  766. }
  767. /*FI]*/
  768. }
  769.  
  770.  
  771. T6 r391fast_has(T391* C,T0* a1){
  772. T6 R=0;
  773. R=r391valid_index(C,r391fast_index_of(C,a1));
  774. return R;
  775. }
  776.  
  777.  
  778. T2 r391fast_index_of(T391* C,T0* a1){
  779. T2 R=0;
  780. R=r347fast_index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  781. return R;
  782. }
  783.  
  784.  
  785. void r391resize(T391* C,T2 a1){
  786. T0* _elt_default=NULL;
  787. T2 _i=0;
  788. T2 _new_capacity=0;
  789. /*[IF*/
  790. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*12*/))+(1)/*)*/)){
  791. (/*SFN*/C->_upper)=(a1)-(1);
  792. }
  793. else{
  794. _new_capacity=a1;
  795. /*[IF*/
  796. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  797. /*[IF*/
  798. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  799. (/*SFN*/C->_storage)=((T347)(calloc(_new_capacity,sizeof(T0*))));
  800. }
  801. else{
  802. (/*SFN*/C->_storage)=r347realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  803. }
  804. /*FI]*/
  805. (/*SFN*/C->_capacity)=_new_capacity;
  806. }
  807. /*FI]*/
  808. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  809. (/*SFN*/C->_upper)=(a1)-(1);
  810. _i=(/*RF2*/(C)->_upper/*12*/);
  811. while (!((_i)==(_new_capacity)))
  812. {
  813. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[_i]=(_elt_default);
  814. /*]*/
  815. _i=(_i)-(1);
  816. }
  817. }
  818. /*FI]*/
  819. }
  820.  
  821.  
  822. T6 r391valid_index(T391* C,T2 a1){
  823. T6 R=0;
  824. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*12*/)));
  825. return R;
  826. }
  827.  
  828.  
  829. void r385add_last(T385* C,T0* a1){
  830. T2 _new_capacity=0;
  831. /*[IF*/
  832. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  833. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  834. }
  835.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  836. (/*SFN*/C->_storage)=((T387)(calloc(2,sizeof(T0*))));
  837. (/*SFN*/C->_capacity)=2;
  838. (/*SFN*/C->_upper)=0;
  839. }
  840. else{
  841. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  842. (/*SFN*/C->_storage)=r387realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  843. (/*SFN*/C->_capacity)=_new_capacity;
  844. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  845. }
  846. /*FI]*/
  847. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[(/*RF2*/(C)->_upper/*12*/)]=(a1);
  848. /*]*/
  849. }
  850.  
  851.  
  852. void r385with_capacity(T385* C,T2 a1){
  853. /*[IF*/
  854. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  855. (/*SFN*/C->_storage)=((T387)(calloc(a1,sizeof(T0*))));
  856. (/*SFN*/C->_capacity)=a1;
  857. }
  858. /*FI]*/
  859. (/*SFN*/C->_upper)=-(1);
  860. }
  861.  
  862.  
  863. void r385make(T385* C,T2 a1){
  864. /*[IF*/
  865. if((a1)==(0)){
  866. (/*SFN*/C->_upper)=-(1);
  867. }
  868.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  869. (/*SFN*/C->_storage)=((T387)(calloc(a1,sizeof(T0*))));
  870. (/*SFN*/C->_capacity)=a1;
  871. (/*SFN*/C->_upper)=(a1)-(1);
  872. }
  873.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  874. (/*SFN*/C->_storage)=((T387)(calloc(a1,sizeof(T0*))));
  875. (/*SFN*/C->_capacity)=a1;
  876. (/*SFN*/C->_upper)=(a1)-(1);
  877. }
  878. else{
  879. (/*SFN*/C->_upper)=(a1)-(1);
  880. /*[IRF3.6clear_all*/{T385* C1=C;
  881. T0* __value=NULL;
  882. /*[IRF3.6set_all_with*/{T385* C2=C1;
  883. T0* c1=__value;
  884. r387set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,(/*RF2*/(C2)->_upper/*12*/));
  885. }/*]*/
  886. }/*]*/
  887. }
  888. /*FI]*/
  889. }
  890.  
  891.  
  892. T6 r385fast_has(T385* C,T0* a1){
  893. T6 R=0;
  894. R=r385valid_index(C,r385fast_index_of(C,a1));
  895. return R;
  896. }
  897.  
  898.  
  899. T2 r385fast_index_of(T385* C,T0* a1){
  900. T2 R=0;
  901. R=r387fast_index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  902. return R;
  903. }
  904.  
  905.  
  906. void r385resize(T385* C,T2 a1){
  907. T0* _elt_default=NULL;
  908. T2 _i=0;
  909. T2 _new_capacity=0;
  910. /*[IF*/
  911. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*12*/))+(1)/*)*/)){
  912. (/*SFN*/C->_upper)=(a1)-(1);
  913. }
  914. else{
  915. _new_capacity=a1;
  916. /*[IF*/
  917. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  918. /*[IF*/
  919. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  920. (/*SFN*/C->_storage)=((T387)(calloc(_new_capacity,sizeof(T0*))));
  921. }
  922. else{
  923. (/*SFN*/C->_storage)=r387realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  924. }
  925. /*FI]*/
  926. (/*SFN*/C->_capacity)=_new_capacity;
  927. }
  928. /*FI]*/
  929. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  930. (/*SFN*/C->_upper)=(a1)-(1);
  931. _i=(/*RF2*/(C)->_upper/*12*/);
  932. while (!((_i)==(_new_capacity)))
  933. {
  934. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[_i]=(_elt_default);
  935. /*]*/
  936. _i=(_i)-(1);
  937. }
  938. }
  939. /*FI]*/
  940. }
  941.  
  942.  
  943. T6 r385valid_index(T385* C,T2 a1){
  944. T6 R=0;
  945. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*12*/)));
  946. return R;
  947. }
  948.  
  949.  
  950. void r372add_last(T372* C,T0* a1){
  951. T2 _new_capacity=0;
  952. /*[IF*/
  953. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  954. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  955. }
  956.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  957. (/*SFN*/C->_storage)=((T373)(calloc(2,sizeof(T0*))));
  958. (/*SFN*/C->_capacity)=2;
  959. (/*SFN*/C->_upper)=0;
  960. }
  961. else{
  962. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  963. (/*SFN*/C->_storage)=r373realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  964. (/*SFN*/C->_capacity)=_new_capacity;
  965. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  966. }
  967. /*FI]*/
  968. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[(/*RF2*/(C)->_upper/*12*/)]=(a1);
  969. /*]*/
  970. }
  971.  
  972.  
  973. void r372with_capacity(T372* C,T2 a1){
  974. /*[IF*/
  975. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  976. (/*SFN*/C->_storage)=((T373)(calloc(a1,sizeof(T0*))));
  977. (/*SFN*/C->_capacity)=a1;
  978. }
  979. /*FI]*/
  980. (/*SFN*/C->_upper)=-(1);
  981. }
  982.  
  983.  
  984. void r372make(T372* C,T2 a1){
  985. /*[IF*/
  986. if((a1)==(0)){
  987. (/*SFN*/C->_upper)=-(1);
  988. }
  989.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  990. (/*SFN*/C->_storage)=((T373)(calloc(a1,sizeof(T0*))));
  991. (/*SFN*/C->_capacity)=a1;
  992. (/*SFN*/C->_upper)=(a1)-(1);
  993. }
  994.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  995. (/*SFN*/C->_storage)=((T373)(calloc(a1,sizeof(T0*))));
  996. (/*SFN*/C->_capacity)=a1;
  997. (/*SFN*/C->_upper)=(a1)-(1);
  998. }
  999. else{
  1000. (/*SFN*/C->_upper)=(a1)-(1);
  1001. /*[IRF3.6clear_all*/{T372* C1=C;
  1002. T0* __value=NULL;
  1003. /*[IRF3.6set_all_with*/{T372* C2=C1;
  1004. T0* c1=__value;
  1005. r373set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,(/*RF2*/(C2)->_upper/*12*/));
  1006. }/*]*/
  1007. }/*]*/
  1008. }
  1009. /*FI]*/
  1010. }
  1011.  
  1012.  
  1013. T6 r372fast_has(T372* C,T0* a1){
  1014. T6 R=0;
  1015. R=r372valid_index(C,r372fast_index_of(C,a1));
  1016. return R;
  1017. }
  1018.  
  1019.  
  1020. T2 r372fast_index_of(T372* C,T0* a1){
  1021. T2 R=0;
  1022. R=r373fast_index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  1023. return R;
  1024. }
  1025.  
  1026.  
  1027. void r372resize(T372* C,T2 a1){
  1028. T0* _elt_default=NULL;
  1029. T2 _i=0;
  1030. T2 _new_capacity=0;
  1031. /*[IF*/
  1032. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*12*/))+(1)/*)*/)){
  1033. (/*SFN*/C->_upper)=(a1)-(1);
  1034. }
  1035. else{
  1036. _new_capacity=a1;
  1037. /*[IF*/
  1038. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  1039. /*[IF*/
  1040. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  1041. (/*SFN*/C->_storage)=((T373)(calloc(_new_capacity,sizeof(T0*))));
  1042. }
  1043. else{
  1044. (/*SFN*/C->_storage)=r373realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  1045. }
  1046. /*FI]*/
  1047. (/*SFN*/C->_capacity)=_new_capacity;
  1048. }
  1049. /*FI]*/
  1050. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  1051. (/*SFN*/C->_upper)=(a1)-(1);
  1052. _i=(/*RF2*/(C)->_upper/*12*/);
  1053. while (!((_i)==(_new_capacity)))
  1054. {
  1055. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[_i]=(_elt_default);
  1056. /*]*/
  1057. _i=(_i)-(1);
  1058. }
  1059. }
  1060. /*FI]*/
  1061. }
  1062.  
  1063.  
  1064. T6 r372valid_index(T372* C,T2 a1){
  1065. T6 R=0;
  1066. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*12*/)));
  1067. return R;
  1068. }
  1069.  
  1070.  
  1071. void r364add_last(T364* C,T0* a1){
  1072. T2 _new_capacity=0;
  1073. /*[IF*/
  1074. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  1075. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  1076. }
  1077.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  1078. (/*SFN*/C->_storage)=((T365)(calloc(2,sizeof(T0*))));
  1079. (/*SFN*/C->_capacity)=2;
  1080. (/*SFN*/C->_upper)=0;
  1081. }
  1082. else{
  1083. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  1084. (/*SFN*/C->_storage)=r365realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  1085. (/*SFN*/C->_capacity)=_new_capacity;
  1086. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  1087. }
  1088. /*FI]*/
  1089. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[(/*RF2*/(C)->_upper/*12*/)]=(a1);
  1090. /*]*/
  1091. }
  1092.  
  1093.  
  1094. void r364with_capacity(T364* C,T2 a1){
  1095. /*[IF*/
  1096. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  1097. (/*SFN*/C->_storage)=((T365)(calloc(a1,sizeof(T0*))));
  1098. (/*SFN*/C->_capacity)=a1;
  1099. }
  1100. /*FI]*/
  1101. (/*SFN*/C->_upper)=-(1);
  1102. }
  1103.  
  1104.  
  1105. void r364make(T364* C,T2 a1){
  1106. /*[IF*/
  1107. if((a1)==(0)){
  1108. (/*SFN*/C->_upper)=-(1);
  1109. }
  1110.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  1111. (/*SFN*/C->_storage)=((T365)(calloc(a1,sizeof(T0*))));
  1112. (/*SFN*/C->_capacity)=a1;
  1113. (/*SFN*/C->_upper)=(a1)-(1);
  1114. }
  1115.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  1116. (/*SFN*/C->_storage)=((T365)(calloc(a1,sizeof(T0*))));
  1117. (/*SFN*/C->_capacity)=a1;
  1118. (/*SFN*/C->_upper)=(a1)-(1);
  1119. }
  1120. else{
  1121. (/*SFN*/C->_upper)=(a1)-(1);
  1122. /*[IRF3.6clear_all*/{T364* C1=C;
  1123. T0* __value=NULL;
  1124. /*[IRF3.6set_all_with*/{T364* C2=C1;
  1125. T0* c1=__value;
  1126. r365set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,(/*RF2*/(C2)->_upper/*12*/));
  1127. }/*]*/
  1128. }/*]*/
  1129. }
  1130. /*FI]*/
  1131. }
  1132.  
  1133.  
  1134. T6 r364fast_has(T364* C,T0* a1){
  1135. T6 R=0;
  1136. R=r364valid_index(C,r364fast_index_of(C,a1));
  1137. return R;
  1138. }
  1139.  
  1140.  
  1141. void r364copy(T364* C,T0* a1){
  1142. T2 _new_capacity=0;
  1143. T2 _other_upper=0;
  1144. _other_upper=(/*RF2*/(((T364*)a1))->_upper/*12*/);
  1145. /*[IF*/
  1146. if((_other_upper)>=(0)){
  1147. _new_capacity=(_other_upper)+(1);
  1148. /*[IF*/
  1149. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  1150. (/*SFN*/C->_capacity)=_new_capacity;
  1151. (/*SFN*/C->_storage)=((T365)(calloc(_new_capacity,sizeof(T0*))));
  1152. }
  1153.  else if(((/*RF2*/(C)->_capacity/*8*/))>(0)){
  1154. r365clear_all((/*RF2*/(C)->_storage/*4*/),((/*RF2*/(C)->_capacity/*8*/))-(1));
  1155. }
  1156. /*FI]*/
  1157. r365copy_from((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(((T364*)a1))->_storage/*4*/),_other_upper);
  1158. }
  1159.  else if(((/*RF2*/(C)->_capacity/*8*/))>(0)){
  1160. r365clear_all((/*RF2*/(C)->_storage/*4*/),((/*RF2*/(C)->_capacity/*8*/))-(1));
  1161. }
  1162. /*FI]*/
  1163. (/*SFN*/C->_upper)=_other_upper;
  1164. }
  1165.  
  1166.  
  1167. T2 r364fast_index_of(T364* C,T0* a1){
  1168. T2 R=0;
  1169. R=r365fast_index_of((/*RF2*/(C)->_storage/*4*/),a1,(/*RF2*/(C)->_upper/*12*/));
  1170. return R;
  1171. }
  1172.  
  1173.  
  1174. void r364resize(T364* C,T2 a1){
  1175. T0* _elt_default=NULL;
  1176. T2 _i=0;
  1177. T2 _new_capacity=0;
  1178. /*[IF*/
  1179. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*12*/))+(1)/*)*/)){
  1180. (/*SFN*/C->_upper)=(a1)-(1);
  1181. }
  1182. else{
  1183. _new_capacity=a1;
  1184. /*[IF*/
  1185. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  1186. /*[IF*/
  1187. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  1188. (/*SFN*/C->_storage)=((T365)(calloc(_new_capacity,sizeof(T0*))));
  1189. }
  1190. else{
  1191. (/*SFN*/C->_storage)=r365realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  1192. }
  1193. /*FI]*/
  1194. (/*SFN*/C->_capacity)=_new_capacity;
  1195. }
  1196. /*FI]*/
  1197. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  1198. (/*SFN*/C->_upper)=(a1)-(1);
  1199. _i=(/*RF2*/(C)->_upper/*12*/);
  1200. while (!((_i)==(_new_capacity)))
  1201. {
  1202. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[_i]=(_elt_default);
  1203. /*]*/
  1204. _i=(_i)-(1);
  1205. }
  1206. }
  1207. /*FI]*/
  1208. }
  1209.  
  1210.  
  1211. T0* r364twin(T364* C){
  1212. T0* R=NULL;
  1213. R=malloc(sizeof(*C));
  1214. *((T364*)R)=M364;
  1215. r364copy(((T364*)R),((T0*)C));
  1216. return R;
  1217. }
  1218.  
  1219.  
  1220. T6 r364valid_index(T364* C,T2 a1){
  1221. T6 R=0;
  1222. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*12*/)));
  1223. return R;
  1224. }
  1225.  
  1226.  
  1227. void r374add_last(T374* C,T6 a1){
  1228. T2 _new_capacity=0;
  1229. /*[IF*/
  1230. if(((/*RF2*/(C)->_capacity/*4*/))<((r374count(C))+(1))){
  1231. /*[IF*/
  1232. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1233. (/*SFN*/C->_capacity)=16;
  1234. (/*SFN*/C->_storage)=((T375)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T6))));
  1235. }
  1236. else{
  1237. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1238. (/*SFN*/C->_storage)=r375realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1239. (/*SFN*/C->_capacity)=_new_capacity;
  1240. }
  1241. /*FI]*/
  1242. }
  1243. /*FI]*/
  1244. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1245. /*[IRF3.6put*/{T374* C1=C;
  1246. T6 b1=a1;
  1247. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  1248. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1249. }/*]*/
  1250. }
  1251.  
  1252.  
  1253. void r374make(T374* C,T2 a1,T2 a2){
  1254. T2 _needed=0;
  1255. (/*SFN*/C->_lower)=a1;
  1256. (/*SFN*/C->_upper)=a2;
  1257. _needed=((a2)-(a1))+(1);
  1258. /*[IF*/
  1259. if((_needed)>(0)){
  1260. /*[IF*/
  1261. if(((/*RF2*/(C)->_capacity/*4*/))<(_needed)){
  1262. (/*SFN*/C->_storage)=((T375)(calloc(_needed,sizeof(T6))));
  1263. (/*SFN*/C->_capacity)=_needed;
  1264. }
  1265. else{
  1266. /*[IRF3.6clear_all*/{T374* C1=C;
  1267. T6 __value=0;
  1268. /*[IRF3.6set_all_with*/{T374* C2=C1;
  1269. T6 c1=__value;
  1270. r375set_all_with((/*RF2*/(C2)->_storage/*0*/),c1,((/*RF2*/(C2)->_upper/*8*/))-((/*RF2*/(C2)->_lower/*12*/)));
  1271. }/*]*/
  1272. }/*]*/
  1273. }
  1274. /*FI]*/
  1275. }
  1276. /*FI]*/
  1277. }
  1278.  
  1279.  
  1280. void r374set_slice_with(T374* C,T6 a1,T2 a2,T2 a3){
  1281. T2 _i=0;
  1282. _i=a2;
  1283. while (!((_i)>(a3)))
  1284. {
  1285. /*[IRF3.6put*/{T374* C1=C;
  1286. T6 b1=a1;
  1287. T2 b2=_i;
  1288. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1289. }/*]*/
  1290. _i=(_i)+(1);
  1291. }
  1292. }
  1293.  
  1294.  
  1295. void r374force(T374* C,T6 a1,T2 a2){
  1296. /*[IF*/
  1297. if(((/*RF2*/(C)->_upper/*8*/))<(a2)){
  1298. /*[IF*/
  1299. if((a2)==(((/*RF2*/(C)->_upper/*8*/))+(1))){
  1300. r374add_last(C,a1);
  1301. }
  1302. else{
  1303. r374resize(C,(/*RF2*/(C)->_lower/*12*/),a2);
  1304. /*[IRF3.6put*/{T374* C1=C;
  1305. T6 b1=a1;
  1306. T2 b2=a2;
  1307. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1308. }/*]*/
  1309. }
  1310. /*FI]*/
  1311. }
  1312.  else if((a2)<((/*RF2*/(C)->_lower/*12*/))){
  1313. r374resize(C,a2,(/*RF2*/(C)->_upper/*8*/));
  1314. /*[IRF3.6put*/{T374* C1=C;
  1315. T6 b1=a1;
  1316. T2 b2=a2;
  1317. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1318. }/*]*/
  1319. }
  1320. else{
  1321. /*[IRF3.6put*/{T374* C1=C;
  1322. T6 b1=a1;
  1323. T2 b2=a2;
  1324. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1325. }/*]*/
  1326. }
  1327. /*FI]*/
  1328. }
  1329.  
  1330.  
  1331. void r374resize(T374* C,T2 a1,T2 a2){
  1332. T2 _intersize=0;
  1333. T2 _offset=0;
  1334. T2 _needed=0;
  1335. _needed=((a2)-(a1))+(1);
  1336. /*[IF*/
  1337. if((_needed)>(0)){
  1338. /*[IF*/
  1339. if((_needed)>((/*RF2*/(C)->_capacity/*4*/))){
  1340. /*[IF*/
  1341. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1342. (/*SFN*/C->_storage)=((T375)(calloc(_needed,sizeof(T6))));
  1343. (/*SFN*/C->_capacity)=_needed;
  1344. }
  1345. else{
  1346. (/*SFN*/C->_storage)=r375realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_needed);
  1347. (/*SFN*/C->_capacity)=_needed;
  1348. }
  1349. /*FI]*/
  1350. }
  1351. /*FI]*/
  1352. _offset=((/*RF2*/(C)->_lower/*12*/))-(a1);
  1353. _intersize=((r2min(a2,(/*RF2*/(C)->_upper/*8*/)))-(r2max(a1,(/*RF2*/(C)->_lower/*12*/))))+(1);
  1354. /*[IF*/
  1355. if((_intersize)>(0)){
  1356. /*[IF*/
  1357. if((_offset)==(0)){
  1358. /*[IF*/
  1359. if((_intersize)<(_needed)){
  1360. r375clear((/*RF2*/(C)->_storage/*0*/),_intersize,(_needed)-(1));
  1361. }
  1362. /*FI]*/
  1363. }
  1364.  else if((_offset)<(0)){
  1365. r375move((/*RF2*/(C)->_storage/*0*/),-(_offset),((_intersize)-(_offset))-(1),_offset);
  1366. /*[IF*/
  1367. if((_intersize)<(_needed)){
  1368. r375clear((/*RF2*/(C)->_storage/*0*/),_intersize,(_needed)-(1));
  1369. }
  1370. /*FI]*/
  1371. }
  1372. else{
  1373. r375move((/*RF2*/(C)->_storage/*0*/),0,(_intersize)-(1),_offset);
  1374. r375clear((/*RF2*/(C)->_storage/*0*/),0,(_offset)-(1));
  1375. /*[IF*/
  1376. if(((_intersize)+(_offset))<(_needed)){
  1377. r375clear((/*RF2*/(C)->_storage/*0*/),(_intersize)+(_offset),(_needed)-(1));
  1378. }
  1379. /*FI]*/
  1380. }
  1381. /*FI]*/
  1382. }
  1383. else{
  1384. r375clear((/*RF2*/(C)->_storage/*0*/),0,(_needed)-(1));
  1385. }
  1386. /*FI]*/
  1387. }
  1388. /*FI]*/
  1389. (/*SFN*/C->_lower)=a1;
  1390. (/*SFN*/C->_upper)=a2;
  1391. }
  1392.  
  1393.  
  1394. T6 r374valid_index(T374* C,T2 a1){
  1395. T6 R=0;
  1396. R=(((/*RF2*/(C)->_lower/*12*/))<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*8*/)));
  1397. return R;
  1398. }
  1399.  
  1400.  
  1401. T2 r374count(T374* C){
  1402. T2 R=0;
  1403. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1404. return R;
  1405. }
  1406.  
  1407.  
  1408. T6 r374item(T374* C,T2 a1){
  1409. T6 R=0;
  1410. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  1411. return R;
  1412. }
  1413.  
  1414.  
  1415. void r162with_capacity(T162* C,T2 a1,T2 a2){
  1416. /*[IF*/
  1417. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  1418. (/*SFN*/C->_storage)=((T28)(calloc(a1,sizeof(T2))));
  1419. (/*SFN*/C->_capacity)=a1;
  1420. }
  1421. /*FI]*/
  1422. (/*SFN*/C->_lower)=a2;
  1423. (/*SFN*/C->_upper)=(a2)-(1);
  1424. }
  1425.  
  1426.  
  1427. void r162add_last(T162* C,T2 a1){
  1428. T2 _new_capacity=0;
  1429. /*[IF*/
  1430. if(((/*RF2*/(C)->_capacity/*4*/))<((r162count(C))+(1))){
  1431. /*[IF*/
  1432. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1433. (/*SFN*/C->_capacity)=16;
  1434. (/*SFN*/C->_storage)=((T28)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T2))));
  1435. }
  1436. else{
  1437. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1438. (/*SFN*/C->_storage)=r28realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1439. (/*SFN*/C->_capacity)=_new_capacity;
  1440. }
  1441. /*FI]*/
  1442. }
  1443. /*FI]*/
  1444. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1445. /*[IRF3.6put*/{T162* C1=C;
  1446. T2 b1=a1;
  1447. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  1448. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1449. }/*]*/
  1450. }
  1451.  
  1452.  
  1453. T2 r162count(T162* C){
  1454. T2 R=0;
  1455. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1456. return R;
  1457. }
  1458.  
  1459.  
  1460. void r377with_capacity(T377* C,T2 a1,T2 a2){
  1461. /*[IF*/
  1462. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  1463. (/*SFN*/C->_storage)=((T378)(calloc(a1,sizeof(T0*))));
  1464. (/*SFN*/C->_capacity)=a1;
  1465. }
  1466. /*FI]*/
  1467. (/*SFN*/C->_lower)=a2;
  1468. (/*SFN*/C->_upper)=(a2)-(1);
  1469. }
  1470.  
  1471.  
  1472. void r377add_last(T377* C,T0* a1){
  1473. T2 _new_capacity=0;
  1474. /*[IF*/
  1475. if(((/*RF2*/(C)->_capacity/*4*/))<((r377count(C))+(1))){
  1476. /*[IF*/
  1477. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1478. (/*SFN*/C->_capacity)=16;
  1479. (/*SFN*/C->_storage)=((T378)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1480. }
  1481. else{
  1482. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1483. (/*SFN*/C->_storage)=r378realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1484. (/*SFN*/C->_capacity)=_new_capacity;
  1485. }
  1486. /*FI]*/
  1487. }
  1488. /*FI]*/
  1489. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1490. /*[IRF3.6put*/{T377* C1=C;
  1491. T0* b1=a1;
  1492. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  1493. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1494. }/*]*/
  1495. }
  1496.  
  1497.  
  1498. void r377swap(T377* C,T2 a1,T2 a2){
  1499. T0* _tmp=NULL;
  1500. _tmp=r377item(C,a1);
  1501. /*[IRF3.6put*/{T377* C1=C;
  1502. T0* b1=r377item(C,a2);
  1503. T2 b2=a1;
  1504. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1505. }/*]*/
  1506. /*[IRF3.6put*/{T377* C1=C;
  1507. T0* b1=_tmp;
  1508. T2 b2=a2;
  1509. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1510. }/*]*/
  1511. }
  1512.  
  1513.  
  1514. T2 r377count(T377* C){
  1515. T2 R=0;
  1516. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1517. return R;
  1518. }
  1519.  
  1520.  
  1521. T0* r377item(T377* C,T2 a1){
  1522. T0* R=NULL;
  1523. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  1524. return R;
  1525. }
  1526.  
  1527.  
  1528. void r237with_capacity(T237* C,T2 a1,T2 a2){
  1529. /*[IF*/
  1530. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  1531. (/*SFN*/C->_storage)=((T238)(calloc(a1,sizeof(T0*))));
  1532. (/*SFN*/C->_capacity)=a1;
  1533. }
  1534. /*FI]*/
  1535. (/*SFN*/C->_lower)=a2;
  1536. (/*SFN*/C->_upper)=(a2)-(1);
  1537. }
  1538.  
  1539.  
  1540. void r237add_last(T237* C,T0* a1){
  1541. T2 _new_capacity=0;
  1542. /*[IF*/
  1543. if(((/*RF2*/(C)->_capacity/*4*/))<((r237count(C))+(1))){
  1544. /*[IF*/
  1545. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1546. (/*SFN*/C->_capacity)=16;
  1547. (/*SFN*/C->_storage)=((T238)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1548. }
  1549. else{
  1550. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1551. (/*SFN*/C->_storage)=r238realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1552. (/*SFN*/C->_capacity)=_new_capacity;
  1553. }
  1554. /*FI]*/
  1555. }
  1556. /*FI]*/
  1557. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1558. /*[IRF3.6put*/{T237* C1=C;
  1559. T0* b1=a1;
  1560. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  1561. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1562. }/*]*/
  1563. }
  1564.  
  1565.  
  1566. void r237copy(T237* C,T0* a1){
  1567. T2 _needed_capacity=0;
  1568. (/*SFN*/C->_lower)=(/*RF2*/(((T237*)a1))->_lower/*12*/);
  1569. (/*SFN*/C->_upper)=(/*RF2*/(((T237*)a1))->_upper/*8*/);
  1570. _needed_capacity=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1571. /*[IF*/
  1572. if(((/*RF2*/(C)->_capacity/*4*/))<(_needed_capacity)){
  1573. (/*SFN*/C->_capacity)=_needed_capacity;
  1574. (/*SFN*/C->_storage)=((T238)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1575. }
  1576. /*FI]*/
  1577. /*[IF*/
  1578. if((_needed_capacity)>(0)){
  1579. r238copy_from((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(((T237*)a1))->_storage/*0*/),(_needed_capacity)-(1));
  1580. }
  1581. /*FI]*/
  1582. }
  1583.  
  1584.  
  1585. T0* r237twin(T237* C){
  1586. T0* R=NULL;
  1587. R=malloc(sizeof(*C));
  1588. *((T237*)R)=M237;
  1589. r237copy(((T237*)R),((T0*)C));
  1590. return R;
  1591. }
  1592.  
  1593.  
  1594. T2 r237count(T237* C){
  1595. T2 R=0;
  1596. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1597. return R;
  1598. }
  1599.  
  1600.  
  1601. T0* r237item(T237* C,T2 a1){
  1602. T0* R=NULL;
  1603. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  1604. return R;
  1605. }
  1606.  
  1607.  
  1608. void r101with_capacity(T101* C,T2 a1,T2 a2){
  1609. /*[IF*/
  1610. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  1611. (/*SFN*/C->_storage)=((T106)(calloc(a1,sizeof(T0*))));
  1612. (/*SFN*/C->_capacity)=a1;
  1613. }
  1614. /*FI]*/
  1615. (/*SFN*/C->_lower)=a2;
  1616. (/*SFN*/C->_upper)=(a2)-(1);
  1617. }
  1618.  
  1619.  
  1620. void r101add_last(T101* C,T0* a1){
  1621. T2 _new_capacity=0;
  1622. /*[IF*/
  1623. if(((/*RF2*/(C)->_capacity/*4*/))<((r101count(C))+(1))){
  1624. /*[IF*/
  1625. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1626. (/*SFN*/C->_capacity)=16;
  1627. (/*SFN*/C->_storage)=((T106)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1628. }
  1629. else{
  1630. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1631. (/*SFN*/C->_storage)=r106realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1632. (/*SFN*/C->_capacity)=_new_capacity;
  1633. }
  1634. /*FI]*/
  1635. }
  1636. /*FI]*/
  1637. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1638. /*[IRF3.6put*/{T101* C1=C;
  1639. T0* b1=a1;
  1640. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  1641. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1642. }/*]*/
  1643. }
  1644.  
  1645.  
  1646. void r101clear(T101* C){
  1647. (/*SFN*/C->_upper)=((/*RF2*/(C)->_lower/*12*/))-(1);
  1648. }
  1649.  
  1650.  
  1651. void r101make(T101* C,T2 a1,T2 a2){
  1652. T2 _needed=0;
  1653. (/*SFN*/C->_lower)=a1;
  1654. (/*SFN*/C->_upper)=a2;
  1655. _needed=((a2)-(a1))+(1);
  1656. /*[IF*/
  1657. if((_needed)>(0)){
  1658. /*[IF*/
  1659. if(((/*RF2*/(C)->_capacity/*4*/))<(_needed)){
  1660. (/*SFN*/C->_storage)=((T106)(calloc(_needed,sizeof(T0*))));
  1661. (/*SFN*/C->_capacity)=_needed;
  1662. }
  1663. else{
  1664. /*[IRF3.6clear_all*/{T101* C1=C;
  1665. T0* __value=NULL;
  1666. /*[IRF3.6set_all_with*/{T101* C2=C1;
  1667. T0* c1=__value;
  1668. r106set_all_with((/*RF2*/(C2)->_storage/*0*/),c1,((/*RF2*/(C2)->_upper/*8*/))-((/*RF2*/(C2)->_lower/*12*/)));
  1669. }/*]*/
  1670. }/*]*/
  1671. }
  1672. /*FI]*/
  1673. }
  1674. /*FI]*/
  1675. }
  1676.  
  1677.  
  1678. T6 r101fast_has(T101* C,T0* a1){
  1679. T6 R=0;
  1680. R=r101valid_index(C,r101fast_index_of(C,a1));
  1681. return R;
  1682. }
  1683.  
  1684.  
  1685. T6 r101is_empty(T101* C){
  1686. T6 R=0;
  1687. R=((/*RF2*/(C)->_upper/*8*/))<((/*RF2*/(C)->_lower/*12*/));
  1688. return R;
  1689. }
  1690.  
  1691.  
  1692. void r101copy(T101* C,T0* a1){
  1693. T2 _needed_capacity=0;
  1694. (/*SFN*/C->_lower)=(/*RF2*/(((T101*)a1))->_lower/*12*/);
  1695. (/*SFN*/C->_upper)=(/*RF2*/(((T101*)a1))->_upper/*8*/);
  1696. _needed_capacity=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1697. /*[IF*/
  1698. if(((/*RF2*/(C)->_capacity/*4*/))<(_needed_capacity)){
  1699. (/*SFN*/C->_capacity)=_needed_capacity;
  1700. (/*SFN*/C->_storage)=((T106)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1701. }
  1702. /*FI]*/
  1703. /*[IF*/
  1704. if((_needed_capacity)>(0)){
  1705. r106copy_from((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(((T101*)a1))->_storage/*0*/),(_needed_capacity)-(1));
  1706. }
  1707. /*FI]*/
  1708. }
  1709.  
  1710.  
  1711. T2 r101fast_index_of(T101* C,T0* a1){
  1712. T2 R=0;
  1713. R=((/*RF2*/(C)->_lower/*12*/))+(r106fast_index_of((/*RF2*/(C)->_storage/*0*/),a1,((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/))));
  1714. return R;
  1715. }
  1716.  
  1717.  
  1718. T6 r101valid_index(T101* C,T2 a1){
  1719. T6 R=0;
  1720. R=(((/*RF2*/(C)->_lower/*12*/))<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*8*/)));
  1721. return R;
  1722. }
  1723.  
  1724.  
  1725. T0* r101twin(T101* C){
  1726. T0* R=NULL;
  1727. R=malloc(sizeof(*C));
  1728. *((T101*)R)=M101;
  1729. r101copy(((T101*)R),((T0*)C));
  1730. return R;
  1731. }
  1732.  
  1733.  
  1734. T2 r101count(T101* C){
  1735. T2 R=0;
  1736. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1737. return R;
  1738. }
  1739.  
  1740.  
  1741. T0* r101item(T101* C,T2 a1){
  1742. T0* R=NULL;
  1743. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  1744. return R;
  1745. }
  1746.  
  1747.  
  1748. void r53add_last(T53* C,T0* a1){
  1749. T2 _new_capacity=0;
  1750. /*[IF*/
  1751. if(((/*RF2*/(C)->_capacity/*4*/))<((r53count(C))+(1))){
  1752. /*[IF*/
  1753. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1754. (/*SFN*/C->_capacity)=16;
  1755. (/*SFN*/C->_storage)=((T54)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1756. }
  1757. else{
  1758. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1759. (/*SFN*/C->_storage)=r54realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1760. (/*SFN*/C->_capacity)=_new_capacity;
  1761. }
  1762. /*FI]*/
  1763. }
  1764. /*FI]*/
  1765. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1766. /*[IRF3.6put*/{T53* C1=C;
  1767. T0* b1=a1;
  1768. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  1769. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1770. }/*]*/
  1771. }
  1772.  
  1773.  
  1774. void r53with_capacity(T53* C,T2 a1,T2 a2){
  1775. /*[IF*/
  1776. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  1777. (/*SFN*/C->_storage)=((T54)(calloc(a1,sizeof(T0*))));
  1778. (/*SFN*/C->_capacity)=a1;
  1779. }
  1780. /*FI]*/
  1781. (/*SFN*/C->_lower)=a2;
  1782. (/*SFN*/C->_upper)=(a2)-(1);
  1783. }
  1784.  
  1785.  
  1786. T6 r53fast_has(T53* C,T0* a1){
  1787. T6 R=0;
  1788. R=r53valid_index(C,r53fast_index_of(C,a1));
  1789. return R;
  1790. }
  1791.  
  1792.  
  1793. void r53copy(T53* C,T0* a1){
  1794. T2 _needed_capacity=0;
  1795. (/*SFN*/C->_lower)=(/*RF2*/(((T53*)a1))->_lower/*12*/);
  1796. (/*SFN*/C->_upper)=(/*RF2*/(((T53*)a1))->_upper/*8*/);
  1797. _needed_capacity=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1798. /*[IF*/
  1799. if(((/*RF2*/(C)->_capacity/*4*/))<(_needed_capacity)){
  1800. (/*SFN*/C->_capacity)=_needed_capacity;
  1801. (/*SFN*/C->_storage)=((T54)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  1802. }
  1803. /*FI]*/
  1804. /*[IF*/
  1805. if((_needed_capacity)>(0)){
  1806. r54copy_from((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(((T53*)a1))->_storage/*0*/),(_needed_capacity)-(1));
  1807. }
  1808. /*FI]*/
  1809. }
  1810.  
  1811.  
  1812. void r53swap(T53* C,T2 a1,T2 a2){
  1813. T0* _tmp=NULL;
  1814. _tmp=r53item(C,a1);
  1815. /*[IRF3.6put*/{T53* C1=C;
  1816. T0* b1=r53item(C,a2);
  1817. T2 b2=a1;
  1818. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1819. }/*]*/
  1820. /*[IRF3.6put*/{T53* C1=C;
  1821. T0* b1=_tmp;
  1822. T2 b2=a2;
  1823. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  1824. }/*]*/
  1825. }
  1826.  
  1827.  
  1828. T2 r53fast_index_of(T53* C,T0* a1){
  1829. T2 R=0;
  1830. R=((/*RF2*/(C)->_lower/*12*/))+(r54fast_index_of((/*RF2*/(C)->_storage/*0*/),a1,((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/))));
  1831. return R;
  1832. }
  1833.  
  1834.  
  1835. T6 r53valid_index(T53* C,T2 a1){
  1836. T6 R=0;
  1837. R=(((/*RF2*/(C)->_lower/*12*/))<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*8*/)));
  1838. return R;
  1839. }
  1840.  
  1841.  
  1842. T2 r53count(T53* C){
  1843. T2 R=0;
  1844. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  1845. return R;
  1846. }
  1847.  
  1848.  
  1849. T0* r53item(T53* C,T2 a1){
  1850. T0* R=NULL;
  1851. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  1852. return R;
  1853. }
  1854.  
  1855.  
  1856. void r67add_last(T67* C,T68 a1){
  1857. T2 _new_capacity=0;
  1858. /*[IF*/
  1859. if((((/*RF2*/(C)->_upper/*8*/))+(1))<=(((/*RF2*/(C)->_capacity/*4*/))-(1))){
  1860. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1861. }
  1862.  else if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  1863. (/*SFN*/C->_storage)=((T69)(calloc(2,sizeof(T68))));
  1864. (/*SFN*/C->_capacity)=2;
  1865. (/*SFN*/C->_upper)=0;
  1866. }
  1867. else{
  1868. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  1869. (/*SFN*/C->_storage)=r69realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  1870. (/*SFN*/C->_capacity)=_new_capacity;
  1871. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  1872. }
  1873. /*FI]*/
  1874. /*[IRF3.5put*/memcpy(((/*RF2*/(C)->_storage/*0*/))+((/*RF2*/(C)->_upper/*8*/)),&(a1),sizeof(T68));
  1875. /*]*/
  1876. }
  1877.  
  1878.  
  1879. void r67with_capacity(T67* C,T2 a1){
  1880. /*[IF*/
  1881. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  1882. (/*SFN*/C->_storage)=((T69)(calloc(a1,sizeof(T68))));
  1883. (/*SFN*/C->_capacity)=a1;
  1884. }
  1885. /*FI]*/
  1886. (/*SFN*/C->_upper)=-(1);
  1887. }
  1888.  
  1889.  
  1890. T6 r67fast_has(T67* C,T68 a1){
  1891. T6 R=0;
  1892. R=r67valid_index(C,r67fast_index_of(C,a1));
  1893. return R;
  1894. }
  1895.  
  1896.  
  1897. T2 r67fast_index_of(T67* C,T68 a1){
  1898. T2 R=0;
  1899. R=r69fast_index_of((/*RF2*/(C)->_storage/*0*/),a1,(/*RF2*/(C)->_upper/*8*/));
  1900. return R;
  1901. }
  1902.  
  1903.  
  1904. T6 r67valid_index(T67* C,T2 a1){
  1905. T6 R=0;
  1906. R=((0)<=(a1))&&((a1)<=((/*RF2*/(C)->_upper/*8*/)));
  1907. return R;
  1908. }
  1909.  
  1910.  
  1911. void r339with_capacity(T339* C,T2 a1){
  1912. /*[IF*/
  1913. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  1914. (/*SFN*/C->_storage)=((T340)(calloc(a1,sizeof(T0*))));
  1915. (/*SFN*/C->_capacity)=a1;
  1916. }
  1917. /*FI]*/
  1918. (/*SFN*/C->_upper)=-(1);
  1919. }
  1920.  
  1921.  
  1922. void r339add_last(T339* C,T0* a1){
  1923. T2 _new_capacity=0;
  1924. /*[IF*/
  1925. if((((/*RF2*/(C)->_upper/*12*/))+(1))<=(((/*RF2*/(C)->_capacity/*8*/))-(1))){
  1926. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  1927. }
  1928.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  1929. (/*SFN*/C->_storage)=((T340)(calloc(2,sizeof(T0*))));
  1930. (/*SFN*/C->_capacity)=2;
  1931. (/*SFN*/C->_upper)=0;
  1932. }
  1933. else{
  1934. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  1935. (/*SFN*/C->_storage)=r340realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  1936. (/*SFN*/C->_capacity)=_new_capacity;
  1937. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  1938. }
  1939. /*FI]*/
  1940. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[(/*RF2*/(C)->_upper/*12*/)]=(a1);
  1941. /*]*/
  1942. }
  1943.  
  1944.  
  1945. void r339make(T339* C,T2 a1){
  1946. /*[IF*/
  1947. if((a1)==(0)){
  1948. (/*SFN*/C->_upper)=-(1);
  1949. }
  1950.  else if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  1951. (/*SFN*/C->_storage)=((T340)(calloc(a1,sizeof(T0*))));
  1952. (/*SFN*/C->_capacity)=a1;
  1953. (/*SFN*/C->_upper)=(a1)-(1);
  1954. }
  1955.  else if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  1956. (/*SFN*/C->_storage)=((T340)(calloc(a1,sizeof(T0*))));
  1957. (/*SFN*/C->_capacity)=a1;
  1958. (/*SFN*/C->_upper)=(a1)-(1);
  1959. }
  1960. else{
  1961. (/*SFN*/C->_upper)=(a1)-(1);
  1962. /*[IRF3.6clear_all*/{T339* C1=C;
  1963. T0* __value=NULL;
  1964. /*[IRF3.6set_all_with*/{T339* C2=C1;
  1965. T0* c1=__value;
  1966. r340set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,(/*RF2*/(C2)->_upper/*12*/));
  1967. }/*]*/
  1968. }/*]*/
  1969. }
  1970. /*FI]*/
  1971. }
  1972.  
  1973.  
  1974. void r339copy(T339* C,T0* a1){
  1975. T2 _new_capacity=0;
  1976. T2 _other_upper=0;
  1977. _other_upper=(/*RF2*/(((T339*)a1))->_upper/*12*/);
  1978. /*[IF*/
  1979. if((_other_upper)>=(0)){
  1980. _new_capacity=(_other_upper)+(1);
  1981. /*[IF*/
  1982. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  1983. (/*SFN*/C->_capacity)=_new_capacity;
  1984. (/*SFN*/C->_storage)=((T340)(calloc(_new_capacity,sizeof(T0*))));
  1985. }
  1986.  else if(((/*RF2*/(C)->_capacity/*8*/))>(0)){
  1987. r340clear_all((/*RF2*/(C)->_storage/*4*/),((/*RF2*/(C)->_capacity/*8*/))-(1));
  1988. }
  1989. /*FI]*/
  1990. r340copy_from((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(((T339*)a1))->_storage/*4*/),_other_upper);
  1991. }
  1992.  else if(((/*RF2*/(C)->_capacity/*8*/))>(0)){
  1993. r340clear_all((/*RF2*/(C)->_storage/*4*/),((/*RF2*/(C)->_capacity/*8*/))-(1));
  1994. }
  1995. /*FI]*/
  1996. (/*SFN*/C->_upper)=_other_upper;
  1997. }
  1998.  
  1999.  
  2000. void r339resize(T339* C,T2 a1){
  2001. T0* _elt_default=NULL;
  2002. T2 _i=0;
  2003. T2 _new_capacity=0;
  2004. /*[IF*/
  2005. if((a1)<=(/*(IRF4.6count*/((/*RF2*/(C)->_upper/*12*/))+(1)/*)*/)){
  2006. (/*SFN*/C->_upper)=(a1)-(1);
  2007. }
  2008. else{
  2009. _new_capacity=a1;
  2010. /*[IF*/
  2011. if(((/*RF2*/(C)->_capacity/*8*/))<(_new_capacity)){
  2012. /*[IF*/
  2013. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  2014. (/*SFN*/C->_storage)=((T340)(calloc(_new_capacity,sizeof(T0*))));
  2015. }
  2016. else{
  2017. (/*SFN*/C->_storage)=r340realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  2018. }
  2019. /*FI]*/
  2020. (/*SFN*/C->_capacity)=_new_capacity;
  2021. }
  2022. /*FI]*/
  2023. _new_capacity=(/*RF2*/(C)->_upper/*12*/);
  2024. (/*SFN*/C->_upper)=(a1)-(1);
  2025. _i=(/*RF2*/(C)->_upper/*12*/);
  2026. while (!((_i)==(_new_capacity)))
  2027. {
  2028. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*4*/))[_i]=(_elt_default);
  2029. /*]*/
  2030. _i=(_i)-(1);
  2031. }
  2032. }
  2033. /*FI]*/
  2034. }
  2035.  
  2036.  
  2037. T0* r339twin(T339* C){
  2038. T0* R=NULL;
  2039. R=malloc(sizeof(*C));
  2040. *((T339*)R)=M339;
  2041. r339copy(((T339*)R),((T0*)C));
  2042. return R;
  2043. }
  2044.  
  2045.  
  2046. void r84with_capacity(T84* C,T2 a1){
  2047. /*[IF*/
  2048. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  2049. (/*SFN*/C->_storage)=((T86)(calloc(a1,sizeof(T0*))));
  2050. (/*SFN*/C->_capacity)=a1;
  2051. }
  2052. /*FI]*/
  2053. (/*SFN*/C->_upper)=-(1);
  2054. }
  2055.  
  2056.  
  2057. void r84add_last(T84* C,T0* a1){
  2058. T2 _new_capacity=0;
  2059. /*[IF*/
  2060. if((((/*RF2*/(C)->_upper/*8*/))+(1))<=(((/*RF2*/(C)->_capacity/*4*/))-(1))){
  2061. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  2062. }
  2063.  else if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  2064. (/*SFN*/C->_storage)=((T86)(calloc(2,sizeof(T0*))));
  2065. (/*SFN*/C->_capacity)=2;
  2066. (/*SFN*/C->_upper)=0;
  2067. }
  2068. else{
  2069. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  2070. (/*SFN*/C->_storage)=r86realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  2071. (/*SFN*/C->_capacity)=_new_capacity;
  2072. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  2073. }
  2074. /*FI]*/
  2075. /*[IRF3.5put*/((/*RF2*/(C)->_storage/*0*/))[(/*RF2*/(C)->_upper/*8*/)]=(a1);
  2076. /*]*/
  2077. }
  2078.  
  2079.  
  2080. void r84make(T84* C,T2 a1){
  2081. /*[IF*/
  2082. if((a1)==(0)){
  2083. (/*SFN*/C->_upper)=-(1);
  2084. }
  2085.  else if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  2086. (/*SFN*/C->_storage)=((T86)(calloc(a1,sizeof(T0*))));
  2087. (/*SFN*/C->_capacity)=a1;
  2088. (/*SFN*/C->_upper)=(a1)-(1);
  2089. }
  2090.  else if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  2091. (/*SFN*/C->_storage)=((T86)(calloc(a1,sizeof(T0*))));
  2092. (/*SFN*/C->_capacity)=a1;
  2093. (/*SFN*/C->_upper)=(a1)-(1);
  2094. }
  2095. else{
  2096. (/*SFN*/C->_upper)=(a1)-(1);
  2097. /*[IRF3.6clear_all*/{T84* C1=C;
  2098. T0* __value=NULL;
  2099. /*[IRF3.6set_all_with*/{T84* C2=C1;
  2100. T0* c1=__value;
  2101. r86set_all_with((/*RF2*/(C2)->_storage/*0*/),c1,(/*RF2*/(C2)->_upper/*8*/));
  2102. }/*]*/
  2103. }/*]*/
  2104. }
  2105. /*FI]*/
  2106. }
  2107.  
  2108.  
  2109. void r182with_capacity(T182* C,T2 a1,T2 a2){
  2110. /*[IF*/
  2111. if(((/*RF2*/(C)->_capacity/*8*/))<(a1)){
  2112. (/*SFN*/C->_storage)=((T183)(calloc(a1,sizeof(T0*))));
  2113. (/*SFN*/C->_capacity)=a1;
  2114. }
  2115. /*FI]*/
  2116. (/*SFN*/C->_lower)=a2;
  2117. (/*SFN*/C->_upper)=(a2)-(1);
  2118. }
  2119.  
  2120.  
  2121. void r182add_last(T182* C,T0* a1){
  2122. T2 _new_capacity=0;
  2123. /*[IF*/
  2124. if(((/*RF2*/(C)->_capacity/*8*/))<((r182count(C))+(1))){
  2125. /*[IF*/
  2126. if(((/*RF2*/(C)->_capacity/*8*/))==(0)){
  2127. (/*SFN*/C->_capacity)=16;
  2128. (/*SFN*/C->_storage)=((T183)(calloc((/*RF2*/(C)->_capacity/*8*/),sizeof(T0*))));
  2129. }
  2130. else{
  2131. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*8*/));
  2132. (/*SFN*/C->_storage)=r183realloc((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(C)->_capacity/*8*/),_new_capacity);
  2133. (/*SFN*/C->_capacity)=_new_capacity;
  2134. }
  2135. /*FI]*/
  2136. }
  2137. /*FI]*/
  2138. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*12*/))+(1);
  2139. /*[IRF3.6put*/{T182* C1=C;
  2140. T0* b1=a1;
  2141. T2 b2=(/*RF2*/(C)->_upper/*12*/);
  2142. ((/*RF2*/(C1)->_storage/*4*/))[(b2)-((/*RF2*/(C1)->_lower/*16*/))]=(b1);
  2143. }/*]*/
  2144. }
  2145.  
  2146.  
  2147. void r182make(T182* C,T2 a1,T2 a2){
  2148. T2 _needed=0;
  2149. (/*SFN*/C->_lower)=a1;
  2150. (/*SFN*/C->_upper)=a2;
  2151. _needed=((a2)-(a1))+(1);
  2152. /*[IF*/
  2153. if((_needed)>(0)){
  2154. /*[IF*/
  2155. if(((/*RF2*/(C)->_capacity/*8*/))<(_needed)){
  2156. (/*SFN*/C->_storage)=((T183)(calloc(_needed,sizeof(T0*))));
  2157. (/*SFN*/C->_capacity)=_needed;
  2158. }
  2159. else{
  2160. /*[IRF3.6clear_all*/{T182* C1=C;
  2161. T0* __value=NULL;
  2162. /*[IRF3.6set_all_with*/{T182* C2=C1;
  2163. T0* c1=__value;
  2164. r183set_all_with((/*RF2*/(C2)->_storage/*4*/),c1,((/*RF2*/(C2)->_upper/*12*/))-((/*RF2*/(C2)->_lower/*16*/)));
  2165. }/*]*/
  2166. }/*]*/
  2167. }
  2168. /*FI]*/
  2169. }
  2170. /*FI]*/
  2171. }
  2172.  
  2173.  
  2174. void r182copy(T182* C,T0* a1){
  2175. T2 _needed_capacity=0;
  2176. (/*SFN*/C->_lower)=(/*RF2*/(((T182*)a1))->_lower/*16*/);
  2177. (/*SFN*/C->_upper)=(/*RF2*/(((T182*)a1))->_upper/*12*/);
  2178. _needed_capacity=(((/*RF2*/(C)->_upper/*12*/))-((/*RF2*/(C)->_lower/*16*/)))+(1);
  2179. /*[IF*/
  2180. if(((/*RF2*/(C)->_capacity/*8*/))<(_needed_capacity)){
  2181. (/*SFN*/C->_capacity)=_needed_capacity;
  2182. (/*SFN*/C->_storage)=((T183)(calloc((/*RF2*/(C)->_capacity/*8*/),sizeof(T0*))));
  2183. }
  2184. /*FI]*/
  2185. /*[IF*/
  2186. if((_needed_capacity)>(0)){
  2187. r183copy_from((/*RF2*/(C)->_storage/*4*/),(/*RF2*/(((T182*)a1))->_storage/*4*/),(_needed_capacity)-(1));
  2188. }
  2189. /*FI]*/
  2190. }
  2191.  
  2192.  
  2193. T0* r182twin(T182* C){
  2194. T0* R=NULL;
  2195. R=malloc(sizeof(*C));
  2196. *((T182*)R)=M182;
  2197. r182copy(((T182*)R),((T0*)C));
  2198. return R;
  2199. }
  2200.  
  2201.  
  2202. T2 r182count(T182* C){
  2203. T2 R=0;
  2204. R=(((/*RF2*/(C)->_upper/*12*/))-((/*RF2*/(C)->_lower/*16*/)))+(1);
  2205. return R;
  2206. }
  2207.  
  2208.  
  2209. T0* r182item(T182* C,T2 a1){
  2210. T0* R=NULL;
  2211. R=((/*RF2*/(C)->_storage/*4*/))[(a1)-((/*RF2*/(C)->_lower/*16*/))];
  2212. return R;
  2213. }
  2214.  
  2215.  
  2216. void r97with_capacity(T97* C,T2 a1,T2 a2){
  2217. /*[IF*/
  2218. if(((/*RF2*/(C)->_capacity/*4*/))<(a1)){
  2219. (/*SFN*/C->_storage)=((T98)(calloc(a1,sizeof(T0*))));
  2220. (/*SFN*/C->_capacity)=a1;
  2221. }
  2222. /*FI]*/
  2223. (/*SFN*/C->_lower)=a2;
  2224. (/*SFN*/C->_upper)=(a2)-(1);
  2225. }
  2226.  
  2227.  
  2228. void r97add_last(T97* C,T0* a1){
  2229. T2 _new_capacity=0;
  2230. /*[IF*/
  2231. if(((/*RF2*/(C)->_capacity/*4*/))<((r97count(C))+(1))){
  2232. /*[IF*/
  2233. if(((/*RF2*/(C)->_capacity/*4*/))==(0)){
  2234. (/*SFN*/C->_capacity)=16;
  2235. (/*SFN*/C->_storage)=((T98)(calloc((/*RF2*/(C)->_capacity/*4*/),sizeof(T0*))));
  2236. }
  2237. else{
  2238. _new_capacity=(2)*((/*RF2*/(C)->_capacity/*4*/));
  2239. (/*SFN*/C->_storage)=r98realloc((/*RF2*/(C)->_storage/*0*/),(/*RF2*/(C)->_capacity/*4*/),_new_capacity);
  2240. (/*SFN*/C->_capacity)=_new_capacity;
  2241. }
  2242. /*FI]*/
  2243. }
  2244. /*FI]*/
  2245. (/*SFN*/C->_upper)=((/*RF2*/(C)->_upper/*8*/))+(1);
  2246. /*[IRF3.6put*/{T97* C1=C;
  2247. T0* b1=a1;
  2248. T2 b2=(/*RF2*/(C)->_upper/*8*/);
  2249. ((/*RF2*/(C1)->_storage/*0*/))[(b2)-((/*RF2*/(C1)->_lower/*12*/))]=(b1);
  2250. }/*]*/
  2251. }
  2252.  
  2253.  
  2254. T2 r97count(T97* C){
  2255. T2 R=0;
  2256. R=(((/*RF2*/(C)->_upper/*8*/))-((/*RF2*/(C)->_lower/*12*/)))+(1);
  2257. return R;
  2258. }
  2259.  
  2260.  
  2261. T0* r97item(T97* C,T2 a1){
  2262. T0* R=NULL;
  2263. R=((/*RF2*/(C)->_storage/*0*/))[(a1)-((/*RF2*/(C)->_lower/*12*/))];
  2264. return R;
  2265. }
  2266.  
  2267.  
  2268. void r362with_capacity(T362* C,T2 a1){
  2269. T2 _i=0;
  2270. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2271. *n=M27;
  2272. r27make(n,a1);
  2273. (/*SFN*/C->_keys)=((T0*)n);
  2274. }
  2275. {T343*n=((T343*)malloc(sizeof(*n))/*12*/);
  2276. *n=M343;
  2277. r343make(n,a1);
  2278. (/*SFN*/C->_store)=((T0*)n);
  2279. }
  2280. (/*SFN*/C->_modulus)=(3)*(a1);
  2281. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2282. *n=M27;
  2283. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  2284. (/*SFN*/C->_buckets)=((T0*)n);
  2285. }
  2286. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  2287. T2 b1=-(1);
  2288. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  2289. }/*]*/
  2290. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2291. *n=M27;
  2292. r27make(n,a1);
  2293. (/*SFN*/C->_chain)=((T0*)n);
  2294. }
  2295. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2296. (/*SFN*/C->_first_free_slot)=_i;
  2297. while (!((_i)<(0)))
  2298. {
  2299. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  2300. /*]*/
  2301. _i=(_i)-(1);
  2302. }
  2303. (/*SFN*/C->_cache_keys_idx)=-(1);
  2304. (/*SFN*/C->_cache_user_idx)=-(1);
  2305. (/*SFN*/C->_count)=0;
  2306. }
  2307.  
  2308.  
  2309. void r362resize_buckets(T362* C,T2 a1){
  2310. T2 _i=0;
  2311. T2 _h=0;
  2312. (/*SFN*/C->_modulus)=a1;
  2313. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  2314. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  2315. T2 b1=-(1);
  2316. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  2317. }/*]*/
  2318. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  2319. {
  2320. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  2321. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  2322. /*]*/
  2323. (/*SFN*/C->_first_free_slot)=_i;
  2324. }
  2325. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2326. while (!((_i)<(0)))
  2327. {
  2328. /*[IF*/
  2329. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  2330. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  2331. /*]*/
  2332. (/*SFN*/C->_first_free_slot)=_i;
  2333. }
  2334. else{
  2335. _h=(r2hash_code(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*0*/))[_i]/*)*/))%(a1);
  2336. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  2337. /*]*/
  2338. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  2339. /*]*/
  2340. }
  2341. /*FI]*/
  2342. _i=(_i)-(1);
  2343. }
  2344. }
  2345.  
  2346.  
  2347. void r362expand(T362* C){
  2348. T2 _i=0;
  2349. _i=/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*8*/))+(1)/*)*/;
  2350. r362resize_buckets(C,((_i)*(2))*(3));
  2351. while (!((_i)==(0)))
  2352. {
  2353. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  2354. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2355. _i=(_i)-(1);
  2356. }
  2357. r27resize((T27*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  2358. r343resize((T343*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  2359. }
  2360.  
  2361.  
  2362. void r362set_cache_user_idx(T362* C,T2 a1){
  2363. T2 _i=0;
  2364. /*[IF*/
  2365. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  2366. (/*SFN*/C->_cache_user_idx)=a1;
  2367. /*[IF*/
  2368. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  2369. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2370. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2371. {
  2372. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2373. }
  2374. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2375. }
  2376. else{
  2377. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2378. }
  2379. /*FI]*/
  2380. }
  2381.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  2382. (/*SFN*/C->_cache_user_idx)=a1;
  2383. /*[IF*/
  2384. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  2385. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2386. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2387. {
  2388. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2389. }
  2390. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2391. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  2392. {
  2393. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2394. }
  2395. }
  2396. else{
  2397. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2398. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  2399. {
  2400. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  2401. }
  2402. (/*SFN*/C->_cache_keys_idx)=_i;
  2403. }
  2404. /*FI]*/
  2405. }
  2406.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  2407. }
  2408.  else if((a1)==(1)){
  2409. (/*SFN*/C->_cache_user_idx)=1;
  2410. (/*SFN*/C->_cache_buckets_idx)=0;
  2411. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2412. {
  2413. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2414. }
  2415. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2416. }
  2417.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  2418. (/*SFN*/C->_cache_user_idx)=a1;
  2419. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  2420. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2421. {
  2422. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2423. }
  2424. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2425. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  2426. {
  2427. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2428. }
  2429. }
  2430. else{
  2431. (/*SFN*/C->_cache_user_idx)=1;
  2432. (/*SFN*/C->_cache_buckets_idx)=0;
  2433. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2434. {
  2435. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2436. }
  2437. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2438. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  2439. {
  2440. r362set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  2441. }
  2442. }
  2443. /*FI]*/
  2444. }
  2445.  
  2446.  
  2447. void r362put(T362* C,T0* a1,T2 a2){
  2448. T2 _h=0;
  2449. /*[IF*/
  2450. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))){
  2451. (/*SFN*/C->_cache_user_idx)=-(1);
  2452. _h=(r2hash_code(a2))%((/*RF2*/(C)->_modulus/*8*/));
  2453. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  2454. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  2455. {
  2456. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2457. }
  2458. /*[IF*/
  2459. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  2460. /*[IF*/
  2461. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  2462. r362expand(C);
  2463. _h=(r2hash_code(a2))%((/*RF2*/(C)->_modulus/*8*/));
  2464. }
  2465. /*FI]*/
  2466. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  2467. /*]*/
  2468. /*[IRF3.5put*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  2469. /*]*/
  2470. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  2471. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  2472. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  2473. /*]*/
  2474. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  2475. /*]*/
  2476. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  2477. }
  2478. else{
  2479. /*[IRF3.5put*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  2480. /*]*/
  2481. }
  2482. /*FI]*/
  2483. }
  2484. else{
  2485. /*[IRF3.5put*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  2486. /*]*/
  2487. }
  2488. /*FI]*/
  2489. }
  2490.  
  2491.  
  2492. T6 r362has(T362* C,T2 a1){
  2493. T6 R=0;
  2494. /*[IF*/
  2495. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))){
  2496. (/*SFN*/C->_cache_user_idx)=-(1);
  2497. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r2hash_code(a1))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  2498. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  2499. {
  2500. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2501. }
  2502. }
  2503. /*FI]*/
  2504. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  2505. return R;
  2506. }
  2507.  
  2508.  
  2509. T0* r362item(T362* C,T2 a1){
  2510. T0* R=NULL;
  2511. r362set_cache_user_idx(C,a1);
  2512. R=/*(IRF4.6item*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2513. return R;
  2514. }
  2515.  
  2516.  
  2517. void r353with_capacity(T353* C,T2 a1){
  2518. T2 _i=0;
  2519. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  2520. *n=M31;
  2521. r31make(n,a1);
  2522. (/*SFN*/C->_keys)=((T0*)n);
  2523. }
  2524. {T354*n=((T354*)malloc(sizeof(*n))/*12*/);
  2525. *n=M354;
  2526. r354make(n,a1);
  2527. (/*SFN*/C->_store)=((T0*)n);
  2528. }
  2529. (/*SFN*/C->_modulus)=(3)*(a1);
  2530. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2531. *n=M27;
  2532. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  2533. (/*SFN*/C->_buckets)=((T0*)n);
  2534. }
  2535. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  2536. T2 b1=-(1);
  2537. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  2538. }/*]*/
  2539. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2540. *n=M27;
  2541. r27make(n,a1);
  2542. (/*SFN*/C->_chain)=((T0*)n);
  2543. }
  2544. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2545. (/*SFN*/C->_first_free_slot)=_i;
  2546. while (!((_i)<(0)))
  2547. {
  2548. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  2549. /*]*/
  2550. _i=(_i)-(1);
  2551. }
  2552. (/*SFN*/C->_cache_keys_idx)=-(1);
  2553. (/*SFN*/C->_cache_user_idx)=-(1);
  2554. (/*SFN*/C->_count)=0;
  2555. }
  2556.  
  2557.  
  2558. void r353resize_buckets(T353* C,T2 a1){
  2559. T2 _i=0;
  2560. T2 _h=0;
  2561. (/*SFN*/C->_modulus)=a1;
  2562. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  2563. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  2564. T2 b1=-(1);
  2565. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  2566. }/*]*/
  2567. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  2568. {
  2569. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  2570. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  2571. /*]*/
  2572. (/*SFN*/C->_first_free_slot)=_i;
  2573. }
  2574. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2575. while (!((_i)<(0)))
  2576. {
  2577. /*[IF*/
  2578. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  2579. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  2580. /*]*/
  2581. (/*SFN*/C->_first_free_slot)=_i;
  2582. }
  2583. else{
  2584. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  2585. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  2586. /*]*/
  2587. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  2588. /*]*/
  2589. }
  2590. /*FI]*/
  2591. _i=(_i)-(1);
  2592. }
  2593. }
  2594.  
  2595.  
  2596. void r353expand(T353* C){
  2597. T2 _i=0;
  2598. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  2599. r353resize_buckets(C,((_i)*(2))*(3));
  2600. while (!((_i)==(0)))
  2601. {
  2602. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  2603. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2604. _i=(_i)-(1);
  2605. }
  2606. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  2607. r354resize((T354*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  2608. }
  2609.  
  2610.  
  2611. T0* r353at(T353* C,T0* a1){
  2612. T0* R=NULL;
  2613. /*[IF*/
  2614. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  2615. (/*SFN*/C->_cache_user_idx)=-(1);
  2616. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  2617. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  2618. {
  2619. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2620. }
  2621. }
  2622. /*FI]*/
  2623. R=/*(IRF4.6item*/((/*RF2*/((T354*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2624. return R;
  2625. }
  2626.  
  2627.  
  2628. void r353set_cache_user_idx(T353* C,T2 a1){
  2629. T2 _i=0;
  2630. /*[IF*/
  2631. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  2632. (/*SFN*/C->_cache_user_idx)=a1;
  2633. /*[IF*/
  2634. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  2635. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2636. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2637. {
  2638. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2639. }
  2640. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2641. }
  2642. else{
  2643. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2644. }
  2645. /*FI]*/
  2646. }
  2647.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  2648. (/*SFN*/C->_cache_user_idx)=a1;
  2649. /*[IF*/
  2650. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  2651. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2652. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2653. {
  2654. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2655. }
  2656. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2657. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  2658. {
  2659. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2660. }
  2661. }
  2662. else{
  2663. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2664. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  2665. {
  2666. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  2667. }
  2668. (/*SFN*/C->_cache_keys_idx)=_i;
  2669. }
  2670. /*FI]*/
  2671. }
  2672.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  2673. }
  2674.  else if((a1)==(1)){
  2675. (/*SFN*/C->_cache_user_idx)=1;
  2676. (/*SFN*/C->_cache_buckets_idx)=0;
  2677. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2678. {
  2679. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2680. }
  2681. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2682. }
  2683.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  2684. (/*SFN*/C->_cache_user_idx)=a1;
  2685. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  2686. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2687. {
  2688. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2689. }
  2690. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2691. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  2692. {
  2693. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2694. }
  2695. }
  2696. else{
  2697. (/*SFN*/C->_cache_user_idx)=1;
  2698. (/*SFN*/C->_cache_buckets_idx)=0;
  2699. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2700. {
  2701. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2702. }
  2703. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2704. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  2705. {
  2706. r353set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  2707. }
  2708. }
  2709. /*FI]*/
  2710. }
  2711.  
  2712.  
  2713. void r353put(T353* C,T0* a1,T0* a2){
  2714. T2 _h=0;
  2715. /*[IF*/
  2716. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  2717. (/*SFN*/C->_cache_user_idx)=-(1);
  2718. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  2719. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  2720. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  2721. {
  2722. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2723. }
  2724. /*[IF*/
  2725. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  2726. /*[IF*/
  2727. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  2728. r353expand(C);
  2729. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  2730. }
  2731. /*FI]*/
  2732. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  2733. /*]*/
  2734. /*[IRF3.5put*/((/*RF2*/((T354*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  2735. /*]*/
  2736. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  2737. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  2738. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  2739. /*]*/
  2740. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  2741. /*]*/
  2742. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  2743. }
  2744. else{
  2745. /*[IRF3.5put*/((/*RF2*/((T354*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  2746. /*]*/
  2747. }
  2748. /*FI]*/
  2749. }
  2750. else{
  2751. /*[IRF3.5put*/((/*RF2*/((T354*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  2752. /*]*/
  2753. }
  2754. /*FI]*/
  2755. }
  2756.  
  2757.  
  2758. T6 r353has(T353* C,T0* a1){
  2759. T6 R=0;
  2760. /*[IF*/
  2761. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  2762. (/*SFN*/C->_cache_user_idx)=-(1);
  2763. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  2764. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  2765. {
  2766. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2767. }
  2768. }
  2769. /*FI]*/
  2770. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  2771. return R;
  2772. }
  2773.  
  2774.  
  2775. T0* r353item(T353* C,T2 a1){
  2776. T0* R=NULL;
  2777. r353set_cache_user_idx(C,a1);
  2778. R=/*(IRF4.6item*/((/*RF2*/((T354*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2779. return R;
  2780. }
  2781.  
  2782.  
  2783. void r342with_capacity(T342* C,T2 a1){
  2784. T2 _i=0;
  2785. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  2786. *n=M31;
  2787. r31make(n,a1);
  2788. (/*SFN*/C->_keys)=((T0*)n);
  2789. }
  2790. {T343*n=((T343*)malloc(sizeof(*n))/*12*/);
  2791. *n=M343;
  2792. r343make(n,a1);
  2793. (/*SFN*/C->_store)=((T0*)n);
  2794. }
  2795. (/*SFN*/C->_modulus)=(3)*(a1);
  2796. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2797. *n=M27;
  2798. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  2799. (/*SFN*/C->_buckets)=((T0*)n);
  2800. }
  2801. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  2802. T2 b1=-(1);
  2803. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  2804. }/*]*/
  2805. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  2806. *n=M27;
  2807. r27make(n,a1);
  2808. (/*SFN*/C->_chain)=((T0*)n);
  2809. }
  2810. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2811. (/*SFN*/C->_first_free_slot)=_i;
  2812. while (!((_i)<(0)))
  2813. {
  2814. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  2815. /*]*/
  2816. _i=(_i)-(1);
  2817. }
  2818. (/*SFN*/C->_cache_keys_idx)=-(1);
  2819. (/*SFN*/C->_cache_user_idx)=-(1);
  2820. (/*SFN*/C->_count)=0;
  2821. }
  2822.  
  2823.  
  2824. void r342resize_buckets(T342* C,T2 a1){
  2825. T2 _i=0;
  2826. T2 _h=0;
  2827. (/*SFN*/C->_modulus)=a1;
  2828. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  2829. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  2830. T2 b1=-(1);
  2831. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  2832. }/*]*/
  2833. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  2834. {
  2835. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  2836. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  2837. /*]*/
  2838. (/*SFN*/C->_first_free_slot)=_i;
  2839. }
  2840. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2841. while (!((_i)<(0)))
  2842. {
  2843. /*[IF*/
  2844. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  2845. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  2846. /*]*/
  2847. (/*SFN*/C->_first_free_slot)=_i;
  2848. }
  2849. else{
  2850. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  2851. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  2852. /*]*/
  2853. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  2854. /*]*/
  2855. }
  2856. /*FI]*/
  2857. _i=(_i)-(1);
  2858. }
  2859. }
  2860.  
  2861.  
  2862. void r342expand(T342* C){
  2863. T2 _i=0;
  2864. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  2865. r342resize_buckets(C,((_i)*(2))*(3));
  2866. while (!((_i)==(0)))
  2867. {
  2868. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  2869. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  2870. _i=(_i)-(1);
  2871. }
  2872. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  2873. r343resize((T343*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  2874. }
  2875.  
  2876.  
  2877. T0* r342key(T342* C,T2 a1){
  2878. T0* R=NULL;
  2879. r342set_cache_user_idx(C,a1);
  2880. R=/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2881. return R;
  2882. }
  2883.  
  2884.  
  2885. T0* r342at(T342* C,T0* a1){
  2886. T0* R=NULL;
  2887. /*[IF*/
  2888. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  2889. (/*SFN*/C->_cache_user_idx)=-(1);
  2890. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  2891. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  2892. {
  2893. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2894. }
  2895. }
  2896. /*FI]*/
  2897. R=/*(IRF4.6item*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2898. return R;
  2899. }
  2900.  
  2901.  
  2902. void r342set_cache_user_idx(T342* C,T2 a1){
  2903. T2 _i=0;
  2904. /*[IF*/
  2905. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  2906. (/*SFN*/C->_cache_user_idx)=a1;
  2907. /*[IF*/
  2908. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  2909. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2910. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2911. {
  2912. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2913. }
  2914. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2915. }
  2916. else{
  2917. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2918. }
  2919. /*FI]*/
  2920. }
  2921.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  2922. (/*SFN*/C->_cache_user_idx)=a1;
  2923. /*[IF*/
  2924. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  2925. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2926. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2927. {
  2928. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2929. }
  2930. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2931. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  2932. {
  2933. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2934. }
  2935. }
  2936. else{
  2937. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2938. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  2939. {
  2940. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  2941. }
  2942. (/*SFN*/C->_cache_keys_idx)=_i;
  2943. }
  2944. /*FI]*/
  2945. }
  2946.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  2947. }
  2948.  else if((a1)==(1)){
  2949. (/*SFN*/C->_cache_user_idx)=1;
  2950. (/*SFN*/C->_cache_buckets_idx)=0;
  2951. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2952. {
  2953. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2954. }
  2955. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2956. }
  2957.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  2958. (/*SFN*/C->_cache_user_idx)=a1;
  2959. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  2960. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2961. {
  2962. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  2963. }
  2964. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2965. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  2966. {
  2967. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2968. }
  2969. }
  2970. else{
  2971. (/*SFN*/C->_cache_user_idx)=1;
  2972. (/*SFN*/C->_cache_buckets_idx)=0;
  2973. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  2974. {
  2975. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  2976. }
  2977. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  2978. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  2979. {
  2980. r342set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  2981. }
  2982. }
  2983. /*FI]*/
  2984. }
  2985.  
  2986.  
  2987. void r342put(T342* C,T0* a1,T0* a2){
  2988. T2 _h=0;
  2989. /*[IF*/
  2990. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  2991. (/*SFN*/C->_cache_user_idx)=-(1);
  2992. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  2993. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  2994. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  2995. {
  2996. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  2997. }
  2998. /*[IF*/
  2999. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  3000. /*[IF*/
  3001. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  3002. r342expand(C);
  3003. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  3004. }
  3005. /*FI]*/
  3006. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  3007. /*]*/
  3008. /*[IRF3.5put*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  3009. /*]*/
  3010. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  3011. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  3012. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  3013. /*]*/
  3014. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  3015. /*]*/
  3016. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  3017. }
  3018. else{
  3019. /*[IRF3.5put*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  3020. /*]*/
  3021. }
  3022. /*FI]*/
  3023. }
  3024. else{
  3025. /*[IRF3.5put*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  3026. /*]*/
  3027. }
  3028. /*FI]*/
  3029. }
  3030.  
  3031.  
  3032. T6 r342has(T342* C,T0* a1){
  3033. T6 R=0;
  3034. /*[IF*/
  3035. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3036. (/*SFN*/C->_cache_user_idx)=-(1);
  3037. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  3038. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  3039. {
  3040. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3041. }
  3042. }
  3043. /*FI]*/
  3044. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  3045. return R;
  3046. }
  3047.  
  3048.  
  3049. T0* r342item(T342* C,T2 a1){
  3050. T0* R=NULL;
  3051. r342set_cache_user_idx(C,a1);
  3052. R=/*(IRF4.6item*/((/*RF2*/((T343*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3053. return R;
  3054. }
  3055.  
  3056.  
  3057. void r348with_capacity(T348* C,T2 a1){
  3058. T2 _i=0;
  3059. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  3060. *n=M31;
  3061. r31make(n,a1);
  3062. (/*SFN*/C->_keys)=((T0*)n);
  3063. }
  3064. {T349*n=((T349*)malloc(sizeof(*n))/*16*/);
  3065. *n=M349;
  3066. r349make(n,a1);
  3067. (/*SFN*/C->_store)=((T0*)n);
  3068. }
  3069. (/*SFN*/C->_modulus)=(3)*(a1);
  3070. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3071. *n=M27;
  3072. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  3073. (/*SFN*/C->_buckets)=((T0*)n);
  3074. }
  3075. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  3076. T2 b1=-(1);
  3077. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3078. }/*]*/
  3079. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3080. *n=M27;
  3081. r27make(n,a1);
  3082. (/*SFN*/C->_chain)=((T0*)n);
  3083. }
  3084. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  3085. (/*SFN*/C->_first_free_slot)=_i;
  3086. while (!((_i)<(0)))
  3087. {
  3088. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  3089. /*]*/
  3090. _i=(_i)-(1);
  3091. }
  3092. (/*SFN*/C->_cache_keys_idx)=-(1);
  3093. (/*SFN*/C->_cache_user_idx)=-(1);
  3094. (/*SFN*/C->_count)=0;
  3095. }
  3096.  
  3097.  
  3098. void r348resize_buckets(T348* C,T2 a1){
  3099. T2 _i=0;
  3100. T2 _h=0;
  3101. (/*SFN*/C->_modulus)=a1;
  3102. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  3103. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  3104. T2 b1=-(1);
  3105. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3106. }/*]*/
  3107. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  3108. {
  3109. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  3110. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  3111. /*]*/
  3112. (/*SFN*/C->_first_free_slot)=_i;
  3113. }
  3114. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  3115. while (!((_i)<(0)))
  3116. {
  3117. /*[IF*/
  3118. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  3119. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  3120. /*]*/
  3121. (/*SFN*/C->_first_free_slot)=_i;
  3122. }
  3123. else{
  3124. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  3125. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  3126. /*]*/
  3127. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  3128. /*]*/
  3129. }
  3130. /*FI]*/
  3131. _i=(_i)-(1);
  3132. }
  3133. }
  3134.  
  3135.  
  3136. void r348expand(T348* C){
  3137. T2 _i=0;
  3138. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  3139. r348resize_buckets(C,((_i)*(2))*(3));
  3140. while (!((_i)==(0)))
  3141. {
  3142. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  3143. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  3144. _i=(_i)-(1);
  3145. }
  3146. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  3147. X349resize((/*RF2*/(C)->_store/*4*/),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  3148. }
  3149.  
  3150.  
  3151. void r348remove(T348* C,T0* a1){
  3152. T2 _keys_next_idx=0;
  3153. T2 _keys_idx=0;
  3154. T2 _h=0;
  3155. _h=(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/));
  3156. _keys_idx=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  3157. /*[IF*/
  3158. if((_keys_idx)<(0)){
  3159. }
  3160.  else if(r7is_equal((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_keys_idx]/*)*/),a1)){
  3161. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_idx]/*)*/);
  3162. /*]*/
  3163. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_idx]=((/*RF2*/(C)->_first_free_slot/*20*/));
  3164. /*]*/
  3165. (/*SFN*/C->_first_free_slot)=_keys_idx;
  3166. (/*SFN*/C->_cache_user_idx)=-(1);
  3167. (/*SFN*/C->_cache_keys_idx)=-(1);
  3168. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))-(1);
  3169. }
  3170. else{
  3171. _keys_next_idx=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_idx]/*)*/;
  3172. while (!(((_keys_next_idx)<(0))||(r7is_equal((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_keys_next_idx]/*)*/),a1))))
  3173. {
  3174. _keys_idx=_keys_next_idx;
  3175. _keys_next_idx=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_next_idx]/*)*/;
  3176. }
  3177. /*[IF*/
  3178. if((_keys_next_idx)>=(0)){
  3179. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_idx]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_next_idx]/*)*/);
  3180. /*]*/
  3181. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_keys_next_idx]=((/*RF2*/(C)->_first_free_slot/*20*/));
  3182. /*]*/
  3183. (/*SFN*/C->_first_free_slot)=_keys_next_idx;
  3184. (/*SFN*/C->_cache_user_idx)=-(1);
  3185. (/*SFN*/C->_cache_keys_idx)=-(1);
  3186. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))-(1);
  3187. }
  3188. /*FI]*/
  3189. }
  3190. /*FI]*/
  3191. }
  3192.  
  3193.  
  3194. T0* r348at(T348* C,T0* a1){
  3195. T0* R=NULL;
  3196. /*[IF*/
  3197. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3198. (/*SFN*/C->_cache_user_idx)=-(1);
  3199. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  3200. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  3201. {
  3202. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3203. }
  3204. }
  3205. /*FI]*/
  3206. R=X349item((/*RF2*/(C)->_store/*4*/),(/*RF2*/(C)->_cache_keys_idx/*24*/));
  3207. return R;
  3208. }
  3209.  
  3210.  
  3211. void r348set_cache_user_idx(T348* C,T2 a1){
  3212. T2 _i=0;
  3213. /*[IF*/
  3214. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  3215. (/*SFN*/C->_cache_user_idx)=a1;
  3216. /*[IF*/
  3217. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  3218. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3219. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3220. {
  3221. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3222. }
  3223. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3224. }
  3225. else{
  3226. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3227. }
  3228. /*FI]*/
  3229. }
  3230.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  3231. (/*SFN*/C->_cache_user_idx)=a1;
  3232. /*[IF*/
  3233. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  3234. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  3235. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3236. {
  3237. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  3238. }
  3239. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3240. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  3241. {
  3242. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3243. }
  3244. }
  3245. else{
  3246. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3247. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  3248. {
  3249. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  3250. }
  3251. (/*SFN*/C->_cache_keys_idx)=_i;
  3252. }
  3253. /*FI]*/
  3254. }
  3255.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  3256. }
  3257.  else if((a1)==(1)){
  3258. (/*SFN*/C->_cache_user_idx)=1;
  3259. (/*SFN*/C->_cache_buckets_idx)=0;
  3260. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3261. {
  3262. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3263. }
  3264. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3265. }
  3266.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  3267. (/*SFN*/C->_cache_user_idx)=a1;
  3268. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  3269. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3270. {
  3271. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  3272. }
  3273. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3274. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  3275. {
  3276. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3277. }
  3278. }
  3279. else{
  3280. (/*SFN*/C->_cache_user_idx)=1;
  3281. (/*SFN*/C->_cache_buckets_idx)=0;
  3282. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3283. {
  3284. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3285. }
  3286. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3287. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  3288. {
  3289. r348set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  3290. }
  3291. }
  3292. /*FI]*/
  3293. }
  3294.  
  3295.  
  3296. void r348put(T348* C,T0* a1,T0* a2){
  3297. T2 _h=0;
  3298. /*[IF*/
  3299. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3300. (/*SFN*/C->_cache_user_idx)=-(1);
  3301. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  3302. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  3303. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  3304. {
  3305. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3306. }
  3307. /*[IF*/
  3308. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  3309. /*[IF*/
  3310. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  3311. r348expand(C);
  3312. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  3313. }
  3314. /*FI]*/
  3315. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  3316. /*]*/
  3317. X349put((/*RF2*/(C)->_store/*4*/),a1,(/*RF2*/(C)->_first_free_slot/*20*/));
  3318. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  3319. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  3320. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  3321. /*]*/
  3322. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  3323. /*]*/
  3324. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  3325. }
  3326. else{
  3327. X349put((/*RF2*/(C)->_store/*4*/),a1,(/*RF2*/(C)->_cache_keys_idx/*24*/));
  3328. }
  3329. /*FI]*/
  3330. }
  3331. else{
  3332. X349put((/*RF2*/(C)->_store/*4*/),a1,(/*RF2*/(C)->_cache_keys_idx/*24*/));
  3333. }
  3334. /*FI]*/
  3335. }
  3336.  
  3337.  
  3338. T6 r348has(T348* C,T0* a1){
  3339. T6 R=0;
  3340. /*[IF*/
  3341. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3342. (/*SFN*/C->_cache_user_idx)=-(1);
  3343. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  3344. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  3345. {
  3346. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3347. }
  3348. }
  3349. /*FI]*/
  3350. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  3351. return R;
  3352. }
  3353.  
  3354.  
  3355. T0* r348item(T348* C,T2 a1){
  3356. T0* R=NULL;
  3357. r348set_cache_user_idx(C,a1);
  3358. R=X349item((/*RF2*/(C)->_store/*4*/),(/*RF2*/(C)->_cache_keys_idx/*24*/));
  3359. return R;
  3360. }
  3361.  
  3362.  
  3363. void r384with_capacity(T384* C,T2 a1){
  3364. T2 _i=0;
  3365. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  3366. *n=M31;
  3367. r31make(n,a1);
  3368. (/*SFN*/C->_keys)=((T0*)n);
  3369. }
  3370. {T141*n=((T141*)malloc(sizeof(*n))/*16*/);
  3371. *n=M141;
  3372. r141make(n,a1);
  3373. (/*SFN*/C->_store)=((T0*)n);
  3374. }
  3375. (/*SFN*/C->_modulus)=(3)*(a1);
  3376. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3377. *n=M27;
  3378. r27make(n,(/*RF2*/(C)->_modulus/*12*/));
  3379. (/*SFN*/C->_buckets)=((T0*)n);
  3380. }
  3381. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*16*/));
  3382. T2 b1=-(1);
  3383. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3384. }/*]*/
  3385. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3386. *n=M27;
  3387. r27make(n,a1);
  3388. (/*SFN*/C->_chain)=((T0*)n);
  3389. }
  3390. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/);
  3391. (/*SFN*/C->_first_free_slot)=_i;
  3392. while (!((_i)<(0)))
  3393. {
  3394. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]=((_i)-(1));
  3395. /*]*/
  3396. _i=(_i)-(1);
  3397. }
  3398. (/*SFN*/C->_cache_keys_idx)=-(1);
  3399. (/*SFN*/C->_cache_user_idx)=-(1);
  3400. (/*SFN*/C->_count)=0;
  3401. }
  3402.  
  3403.  
  3404. void r384resize_buckets(T384* C,T2 a1){
  3405. T2 _i=0;
  3406. T2 _h=0;
  3407. (/*SFN*/C->_modulus)=a1;
  3408. r27resize((T27*)((/*RF2*/(C)->_buckets/*16*/)),a1);
  3409. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*16*/));
  3410. T2 b1=-(1);
  3411. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3412. }/*]*/
  3413. while (!(((/*RF2*/(C)->_first_free_slot/*24*/))<(0)))
  3414. {
  3415. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]/*)*/;
  3416. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]=(-(2));
  3417. /*]*/
  3418. (/*SFN*/C->_first_free_slot)=_i;
  3419. }
  3420. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/);
  3421. while (!((_i)<(0)))
  3422. {
  3423. /*[IF*/
  3424. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  3425. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*24*/));
  3426. /*]*/
  3427. (/*SFN*/C->_first_free_slot)=_i;
  3428. }
  3429. else{
  3430. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  3431. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/);
  3432. /*]*/
  3433. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]=(_i);
  3434. /*]*/
  3435. }
  3436. /*FI]*/
  3437. _i=(_i)-(1);
  3438. }
  3439. }
  3440.  
  3441.  
  3442. void r384expand(T384* C){
  3443. T2 _i=0;
  3444. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_upper/*12*/))+(1)/*)*/;
  3445. r384resize_buckets(C,((_i)*(2))*(3));
  3446. while (!((_i)==(0)))
  3447. {
  3448. r27add_last((T27*)((/*RF2*/(C)->_chain/*20*/)),(/*RF2*/(C)->_first_free_slot/*24*/));
  3449. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/);
  3450. _i=(_i)-(1);
  3451. }
  3452. r31resize((T31*)((/*RF2*/(C)->_keys/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/))+(1)/*)*/);
  3453. X141resize((/*RF2*/(C)->_store/*8*/),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/))+(1)/*)*/);
  3454. }
  3455.  
  3456.  
  3457. void r384make(T384* C){
  3458. r384with_capacity(C,32);
  3459. }
  3460.  
  3461.  
  3462. void r384put(T384* C,T0* a1,T0* a2){
  3463. T2 _h=0;
  3464. /*[IF*/
  3465. if((((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/)))){
  3466. (/*SFN*/C->_cache_user_idx)=-(1);
  3467. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*12*/));
  3468. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/;
  3469. while (!((((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/))))
  3470. {
  3471. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  3472. }
  3473. /*[IF*/
  3474. if(((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0)){
  3475. /*[IF*/
  3476. if(((/*RF2*/(C)->_first_free_slot/*24*/))<(0)){
  3477. r384expand(C);
  3478. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*12*/));
  3479. }
  3480. /*FI]*/
  3481. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]=(a2);
  3482. /*]*/
  3483. X141put((/*RF2*/(C)->_store/*8*/),a1,(/*RF2*/(C)->_first_free_slot/*24*/));
  3484. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*24*/);
  3485. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]/*)*/;
  3486. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/);
  3487. /*]*/
  3488. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*28*/));
  3489. /*]*/
  3490. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  3491. }
  3492. else{
  3493. X141put((/*RF2*/(C)->_store/*8*/),a1,(/*RF2*/(C)->_cache_keys_idx/*28*/));
  3494. }
  3495. /*FI]*/
  3496. }
  3497. else{
  3498. X141put((/*RF2*/(C)->_store/*8*/),a1,(/*RF2*/(C)->_cache_keys_idx/*28*/));
  3499. }
  3500. /*FI]*/
  3501. }
  3502.  
  3503.  
  3504. void r63with_capacity(T63* C,T2 a1){
  3505. T2 _i=0;
  3506. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  3507. *n=M31;
  3508. r31make(n,a1);
  3509. (/*SFN*/C->_keys)=((T0*)n);
  3510. }
  3511. {T64*n=((T64*)malloc(sizeof(*n))/*12*/);
  3512. *n=M64;
  3513. r64make(n,a1);
  3514. (/*SFN*/C->_store)=((T0*)n);
  3515. }
  3516. (/*SFN*/C->_modulus)=(3)*(a1);
  3517. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3518. *n=M27;
  3519. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  3520. (/*SFN*/C->_buckets)=((T0*)n);
  3521. }
  3522. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  3523. T2 b1=-(1);
  3524. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3525. }/*]*/
  3526. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3527. *n=M27;
  3528. r27make(n,a1);
  3529. (/*SFN*/C->_chain)=((T0*)n);
  3530. }
  3531. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  3532. (/*SFN*/C->_first_free_slot)=_i;
  3533. while (!((_i)<(0)))
  3534. {
  3535. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  3536. /*]*/
  3537. _i=(_i)-(1);
  3538. }
  3539. (/*SFN*/C->_cache_keys_idx)=-(1);
  3540. (/*SFN*/C->_cache_user_idx)=-(1);
  3541. (/*SFN*/C->_count)=0;
  3542. }
  3543.  
  3544.  
  3545. void r63resize_buckets(T63* C,T2 a1){
  3546. T2 _i=0;
  3547. T2 _h=0;
  3548. (/*SFN*/C->_modulus)=a1;
  3549. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  3550. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  3551. T2 b1=-(1);
  3552. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3553. }/*]*/
  3554. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  3555. {
  3556. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  3557. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  3558. /*]*/
  3559. (/*SFN*/C->_first_free_slot)=_i;
  3560. }
  3561. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  3562. while (!((_i)<(0)))
  3563. {
  3564. /*[IF*/
  3565. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  3566. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  3567. /*]*/
  3568. (/*SFN*/C->_first_free_slot)=_i;
  3569. }
  3570. else{
  3571. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  3572. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  3573. /*]*/
  3574. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  3575. /*]*/
  3576. }
  3577. /*FI]*/
  3578. _i=(_i)-(1);
  3579. }
  3580. }
  3581.  
  3582.  
  3583. void r63expand(T63* C){
  3584. T2 _i=0;
  3585. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  3586. r63resize_buckets(C,((_i)*(2))*(3));
  3587. while (!((_i)==(0)))
  3588. {
  3589. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  3590. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  3591. _i=(_i)-(1);
  3592. }
  3593. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  3594. r64resize((T64*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  3595. }
  3596.  
  3597.  
  3598. T0* r63at(T63* C,T0* a1){
  3599. T0* R=NULL;
  3600. /*[IF*/
  3601. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3602. (/*SFN*/C->_cache_user_idx)=-(1);
  3603. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  3604. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  3605. {
  3606. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3607. }
  3608. }
  3609. /*FI]*/
  3610. R=/*(IRF4.6item*/((/*RF2*/((T64*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3611. return R;
  3612. }
  3613.  
  3614.  
  3615. void r63set_cache_user_idx(T63* C,T2 a1){
  3616. T2 _i=0;
  3617. /*[IF*/
  3618. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  3619. (/*SFN*/C->_cache_user_idx)=a1;
  3620. /*[IF*/
  3621. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  3622. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3623. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3624. {
  3625. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3626. }
  3627. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3628. }
  3629. else{
  3630. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3631. }
  3632. /*FI]*/
  3633. }
  3634.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  3635. (/*SFN*/C->_cache_user_idx)=a1;
  3636. /*[IF*/
  3637. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  3638. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  3639. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3640. {
  3641. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  3642. }
  3643. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3644. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  3645. {
  3646. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3647. }
  3648. }
  3649. else{
  3650. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3651. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  3652. {
  3653. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  3654. }
  3655. (/*SFN*/C->_cache_keys_idx)=_i;
  3656. }
  3657. /*FI]*/
  3658. }
  3659.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  3660. }
  3661.  else if((a1)==(1)){
  3662. (/*SFN*/C->_cache_user_idx)=1;
  3663. (/*SFN*/C->_cache_buckets_idx)=0;
  3664. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3665. {
  3666. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3667. }
  3668. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3669. }
  3670.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  3671. (/*SFN*/C->_cache_user_idx)=a1;
  3672. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  3673. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3674. {
  3675. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  3676. }
  3677. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3678. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  3679. {
  3680. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3681. }
  3682. }
  3683. else{
  3684. (/*SFN*/C->_cache_user_idx)=1;
  3685. (/*SFN*/C->_cache_buckets_idx)=0;
  3686. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  3687. {
  3688. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  3689. }
  3690. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  3691. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  3692. {
  3693. r63set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  3694. }
  3695. }
  3696. /*FI]*/
  3697. }
  3698.  
  3699.  
  3700. void r63put(T63* C,T0* a1,T0* a2){
  3701. T2 _h=0;
  3702. /*[IF*/
  3703. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3704. (/*SFN*/C->_cache_user_idx)=-(1);
  3705. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  3706. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  3707. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  3708. {
  3709. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3710. }
  3711. /*[IF*/
  3712. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  3713. /*[IF*/
  3714. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  3715. r63expand(C);
  3716. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  3717. }
  3718. /*FI]*/
  3719. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  3720. /*]*/
  3721. /*[IRF3.5put*/((/*RF2*/((T64*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  3722. /*]*/
  3723. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  3724. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  3725. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  3726. /*]*/
  3727. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  3728. /*]*/
  3729. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  3730. }
  3731. else{
  3732. /*[IRF3.5put*/((/*RF2*/((T64*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  3733. /*]*/
  3734. }
  3735. /*FI]*/
  3736. }
  3737. else{
  3738. /*[IRF3.5put*/((/*RF2*/((T64*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  3739. /*]*/
  3740. }
  3741. /*FI]*/
  3742. }
  3743.  
  3744.  
  3745. T6 r63has(T63* C,T0* a1){
  3746. T6 R=0;
  3747. /*[IF*/
  3748. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  3749. (/*SFN*/C->_cache_user_idx)=-(1);
  3750. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  3751. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  3752. {
  3753. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3754. }
  3755. }
  3756. /*FI]*/
  3757. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  3758. return R;
  3759. }
  3760.  
  3761.  
  3762. T0* r63item(T63* C,T2 a1){
  3763. T0* R=NULL;
  3764. r63set_cache_user_idx(C,a1);
  3765. R=/*(IRF4.6item*/((/*RF2*/((T64*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  3766. return R;
  3767. }
  3768.  
  3769.  
  3770. void r367with_capacity(T367* C,T2 a1){
  3771. T2 _i=0;
  3772. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  3773. *n=M31;
  3774. r31make(n,a1);
  3775. (/*SFN*/C->_keys)=((T0*)n);
  3776. }
  3777. {T207*n=((T207*)malloc(sizeof(*n))/*16*/);
  3778. *n=M207;
  3779. r207make(n,a1);
  3780. (/*SFN*/C->_store)=((T0*)n);
  3781. }
  3782. (/*SFN*/C->_modulus)=(3)*(a1);
  3783. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3784. *n=M27;
  3785. r27make(n,(/*RF2*/(C)->_modulus/*12*/));
  3786. (/*SFN*/C->_buckets)=((T0*)n);
  3787. }
  3788. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*16*/));
  3789. T2 b1=-(1);
  3790. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3791. }/*]*/
  3792. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  3793. *n=M27;
  3794. r27make(n,a1);
  3795. (/*SFN*/C->_chain)=((T0*)n);
  3796. }
  3797. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/);
  3798. (/*SFN*/C->_first_free_slot)=_i;
  3799. while (!((_i)<(0)))
  3800. {
  3801. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]=((_i)-(1));
  3802. /*]*/
  3803. _i=(_i)-(1);
  3804. }
  3805. (/*SFN*/C->_cache_keys_idx)=-(1);
  3806. (/*SFN*/C->_cache_user_idx)=-(1);
  3807. (/*SFN*/C->_count)=0;
  3808. }
  3809.  
  3810.  
  3811. void r367resize_buckets(T367* C,T2 a1){
  3812. T2 _i=0;
  3813. T2 _h=0;
  3814. (/*SFN*/C->_modulus)=a1;
  3815. r27resize((T27*)((/*RF2*/(C)->_buckets/*16*/)),a1);
  3816. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*16*/));
  3817. T2 b1=-(1);
  3818. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  3819. }/*]*/
  3820. while (!(((/*RF2*/(C)->_first_free_slot/*24*/))<(0)))
  3821. {
  3822. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]/*)*/;
  3823. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]=(-(2));
  3824. /*]*/
  3825. (/*SFN*/C->_first_free_slot)=_i;
  3826. }
  3827. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/);
  3828. while (!((_i)<(0)))
  3829. {
  3830. /*[IF*/
  3831. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  3832. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*24*/));
  3833. /*]*/
  3834. (/*SFN*/C->_first_free_slot)=_i;
  3835. }
  3836. else{
  3837. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  3838. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/);
  3839. /*]*/
  3840. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]=(_i);
  3841. /*]*/
  3842. }
  3843. /*FI]*/
  3844. _i=(_i)-(1);
  3845. }
  3846. }
  3847.  
  3848.  
  3849. void r367expand(T367* C){
  3850. T2 _i=0;
  3851. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_upper/*12*/))+(1)/*)*/;
  3852. r367resize_buckets(C,((_i)*(2))*(3));
  3853. while (!((_i)==(0)))
  3854. {
  3855. r27add_last((T27*)((/*RF2*/(C)->_chain/*20*/)),(/*RF2*/(C)->_first_free_slot/*24*/));
  3856. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/);
  3857. _i=(_i)-(1);
  3858. }
  3859. r31resize((T31*)((/*RF2*/(C)->_keys/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/))+(1)/*)*/);
  3860. r207resize((T207*)((/*RF2*/(C)->_store/*8*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_upper/*8*/))+(1)/*)*/);
  3861. }
  3862.  
  3863.  
  3864. void r367remove(T367* C,T0* a1){
  3865. T2 _keys_next_idx=0;
  3866. T2 _keys_idx=0;
  3867. T2 _h=0;
  3868. _h=(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*12*/));
  3869. _keys_idx=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/;
  3870. /*[IF*/
  3871. if((_keys_idx)<(0)){
  3872. }
  3873.  else if(r7is_equal((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[_keys_idx]/*)*/),a1)){
  3874. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_idx]/*)*/);
  3875. /*]*/
  3876. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_idx]=((/*RF2*/(C)->_first_free_slot/*24*/));
  3877. /*]*/
  3878. (/*SFN*/C->_first_free_slot)=_keys_idx;
  3879. (/*SFN*/C->_cache_user_idx)=-(1);
  3880. (/*SFN*/C->_cache_keys_idx)=-(1);
  3881. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*40*/))-(1);
  3882. }
  3883. else{
  3884. _keys_next_idx=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_idx]/*)*/;
  3885. while (!(((_keys_next_idx)<(0))||(r7is_equal((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[_keys_next_idx]/*)*/),a1))))
  3886. {
  3887. _keys_idx=_keys_next_idx;
  3888. _keys_next_idx=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_next_idx]/*)*/;
  3889. }
  3890. /*[IF*/
  3891. if((_keys_next_idx)>=(0)){
  3892. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_idx]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_next_idx]/*)*/);
  3893. /*]*/
  3894. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_keys_next_idx]=((/*RF2*/(C)->_first_free_slot/*24*/));
  3895. /*]*/
  3896. (/*SFN*/C->_first_free_slot)=_keys_next_idx;
  3897. (/*SFN*/C->_cache_user_idx)=-(1);
  3898. (/*SFN*/C->_cache_keys_idx)=-(1);
  3899. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*40*/))-(1);
  3900. }
  3901. /*FI]*/
  3902. }
  3903. /*FI]*/
  3904. }
  3905.  
  3906.  
  3907. void r367set_cache_user_idx(T367* C,T2 a1){
  3908. T2 _i=0;
  3909. /*[IF*/
  3910. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*32*/))+(1))){
  3911. (/*SFN*/C->_cache_user_idx)=a1;
  3912. /*[IF*/
  3913. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/)<(0)){
  3914. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))+(1);
  3915. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/)>=(0)))
  3916. {
  3917. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))+(1);
  3918. }
  3919. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/;
  3920. }
  3921. else{
  3922. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  3923. }
  3924. /*FI]*/
  3925. }
  3926.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*32*/))-(1))){
  3927. (/*SFN*/C->_cache_user_idx)=a1;
  3928. /*[IF*/
  3929. if(((/*RF2*/(C)->_cache_keys_idx/*28*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/)){
  3930. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))-(1);
  3931. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/)>=(0)))
  3932. {
  3933. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))-(1);
  3934. }
  3935. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/;
  3936. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/)<(0)))
  3937. {
  3938. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  3939. }
  3940. }
  3941. else{
  3942. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/;
  3943. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*28*/))))
  3944. {
  3945. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[_i]/*)*/;
  3946. }
  3947. (/*SFN*/C->_cache_keys_idx)=_i;
  3948. }
  3949. /*FI]*/
  3950. }
  3951.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*32*/))){
  3952. }
  3953.  else if((a1)==(1)){
  3954. (/*SFN*/C->_cache_user_idx)=1;
  3955. (/*SFN*/C->_cache_buckets_idx)=0;
  3956. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/)>=(0)))
  3957. {
  3958. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))+(1);
  3959. }
  3960. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/;
  3961. }
  3962.  else if((a1)==((/*RF2*/(C)->_count/*40*/))){
  3963. (/*SFN*/C->_cache_user_idx)=a1;
  3964. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_upper/*8*/);
  3965. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/)>=(0)))
  3966. {
  3967. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))-(1);
  3968. }
  3969. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/;
  3970. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/)<(0)))
  3971. {
  3972. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  3973. }
  3974. }
  3975. else{
  3976. (/*SFN*/C->_cache_user_idx)=1;
  3977. (/*SFN*/C->_cache_buckets_idx)=0;
  3978. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/)>=(0)))
  3979. {
  3980. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*36*/))+(1);
  3981. }
  3982. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*36*/)]/*)*/;
  3983. while (!(((/*RF2*/(C)->_cache_user_idx/*32*/))==(a1)))
  3984. {
  3985. r367set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*32*/))+(1));
  3986. }
  3987. }
  3988. /*FI]*/
  3989. }
  3990.  
  3991.  
  3992. void r367put(T367* C,T0* a1,T0* a2){
  3993. T2 _h=0;
  3994. /*[IF*/
  3995. if((((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/)))){
  3996. (/*SFN*/C->_cache_user_idx)=-(1);
  3997. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*12*/));
  3998. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/;
  3999. while (!((((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/))))
  4000. {
  4001. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  4002. }
  4003. /*[IF*/
  4004. if(((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0)){
  4005. /*[IF*/
  4006. if(((/*RF2*/(C)->_first_free_slot/*24*/))<(0)){
  4007. r367expand(C);
  4008. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*12*/));
  4009. }
  4010. /*FI]*/
  4011. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]=(a2);
  4012. /*]*/
  4013. /*[IRF3.5put*/((/*RF2*/((T207*)((/*RF2*/(C)->_store/*8*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]=(a1);
  4014. /*]*/
  4015. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*24*/);
  4016. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*24*/)]/*)*/;
  4017. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]/*)*/);
  4018. /*]*/
  4019. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*28*/));
  4020. /*]*/
  4021. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*40*/))+(1);
  4022. }
  4023. else{
  4024. /*[IRF3.5put*/((/*RF2*/((T207*)((/*RF2*/(C)->_store/*8*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]=(a1);
  4025. /*]*/
  4026. }
  4027. /*FI]*/
  4028. }
  4029. else{
  4030. /*[IRF3.5put*/((/*RF2*/((T207*)((/*RF2*/(C)->_store/*8*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]=(a1);
  4031. /*]*/
  4032. }
  4033. /*FI]*/
  4034. }
  4035.  
  4036.  
  4037. T6 r367has(T367* C,T0* a1){
  4038. T6 R=0;
  4039. /*[IF*/
  4040. if((((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/)))){
  4041. (/*SFN*/C->_cache_user_idx)=-(1);
  4042. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*16*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*12*/))]/*)*/;
  4043. while (!((((/*RF2*/(C)->_cache_keys_idx/*28*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/))))
  4044. {
  4045. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*20*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  4046. }
  4047. }
  4048. /*FI]*/
  4049. R=((/*RF2*/(C)->_cache_keys_idx/*28*/))>=(0);
  4050. return R;
  4051. }
  4052.  
  4053.  
  4054. T0* r367item(T367* C,T2 a1){
  4055. T0* R=NULL;
  4056. r367set_cache_user_idx(C,a1);
  4057. R=/*(IRF4.6item*/((/*RF2*/((T207*)((/*RF2*/(C)->_store/*8*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*28*/)]/*)*/;
  4058. return R;
  4059. }
  4060.  
  4061.  
  4062. void r91with_capacity(T91* C,T2 a1){
  4063. T2 _i=0;
  4064. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  4065. *n=M31;
  4066. r31make(n,a1);
  4067. (/*SFN*/C->_keys)=((T0*)n);
  4068. }
  4069. {T92*n=((T92*)malloc(sizeof(*n))/*16*/);
  4070. *n=M92;
  4071. r92make(n,a1);
  4072. (/*SFN*/C->_store)=((T0*)n);
  4073. }
  4074. (/*SFN*/C->_modulus)=(3)*(a1);
  4075. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4076. *n=M27;
  4077. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  4078. (/*SFN*/C->_buckets)=((T0*)n);
  4079. }
  4080. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4081. T2 b1=-(1);
  4082. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4083. }/*]*/
  4084. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4085. *n=M27;
  4086. r27make(n,a1);
  4087. (/*SFN*/C->_chain)=((T0*)n);
  4088. }
  4089. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4090. (/*SFN*/C->_first_free_slot)=_i;
  4091. while (!((_i)<(0)))
  4092. {
  4093. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  4094. /*]*/
  4095. _i=(_i)-(1);
  4096. }
  4097. (/*SFN*/C->_cache_keys_idx)=-(1);
  4098. (/*SFN*/C->_cache_user_idx)=-(1);
  4099. (/*SFN*/C->_count)=0;
  4100. }
  4101.  
  4102.  
  4103. void r91resize_buckets(T91* C,T2 a1){
  4104. T2 _i=0;
  4105. T2 _h=0;
  4106. (/*SFN*/C->_modulus)=a1;
  4107. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  4108. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4109. T2 b1=-(1);
  4110. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4111. }/*]*/
  4112. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  4113. {
  4114. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4115. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  4116. /*]*/
  4117. (/*SFN*/C->_first_free_slot)=_i;
  4118. }
  4119. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4120. while (!((_i)<(0)))
  4121. {
  4122. /*[IF*/
  4123. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  4124. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  4125. /*]*/
  4126. (/*SFN*/C->_first_free_slot)=_i;
  4127. }
  4128. else{
  4129. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  4130. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4131. /*]*/
  4132. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  4133. /*]*/
  4134. }
  4135. /*FI]*/
  4136. _i=(_i)-(1);
  4137. }
  4138. }
  4139.  
  4140.  
  4141. void r91expand(T91* C){
  4142. T2 _i=0;
  4143. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  4144. r91resize_buckets(C,((_i)*(2))*(3));
  4145. while (!((_i)==(0)))
  4146. {
  4147. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  4148. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4149. _i=(_i)-(1);
  4150. }
  4151. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4152. X92resize((/*RF2*/(C)->_store/*4*/),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4153. }
  4154.  
  4155.  
  4156. T0* r91at(T91* C,T0* a1){
  4157. T0* R=NULL;
  4158. /*[IF*/
  4159. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4160. (/*SFN*/C->_cache_user_idx)=-(1);
  4161. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4162. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  4163. {
  4164. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4165. }
  4166. }
  4167. /*FI]*/
  4168. R=X92item((/*RF2*/(C)->_store/*4*/),(/*RF2*/(C)->_cache_keys_idx/*24*/));
  4169. return R;
  4170. }
  4171.  
  4172.  
  4173. void r91put(T91* C,T0* a1,T0* a2){
  4174. T2 _h=0;
  4175. /*[IF*/
  4176. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4177. (/*SFN*/C->_cache_user_idx)=-(1);
  4178. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4179. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  4180. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4181. {
  4182. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4183. }
  4184. /*[IF*/
  4185. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  4186. /*[IF*/
  4187. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  4188. r91expand(C);
  4189. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4190. }
  4191. /*FI]*/
  4192. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  4193. /*]*/
  4194. X92put((/*RF2*/(C)->_store/*4*/),a1,(/*RF2*/(C)->_first_free_slot/*20*/));
  4195. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  4196. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4197. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4198. /*]*/
  4199. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  4200. /*]*/
  4201. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*32*/))+(1);
  4202. }
  4203. else{
  4204. X92put((/*RF2*/(C)->_store/*4*/),a1,(/*RF2*/(C)->_cache_keys_idx/*24*/));
  4205. }
  4206. /*FI]*/
  4207. }
  4208. else{
  4209. X92put((/*RF2*/(C)->_store/*4*/),a1,(/*RF2*/(C)->_cache_keys_idx/*24*/));
  4210. }
  4211. /*FI]*/
  4212. }
  4213.  
  4214.  
  4215. T6 r91has(T91* C,T0* a1){
  4216. T6 R=0;
  4217. /*[IF*/
  4218. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4219. (/*SFN*/C->_cache_user_idx)=-(1);
  4220. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4221. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4222. {
  4223. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4224. }
  4225. }
  4226. /*FI]*/
  4227. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  4228. return R;
  4229. }
  4230.  
  4231.  
  4232. void r55with_capacity(T55* C,T2 a1){
  4233. T2 _i=0;
  4234. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  4235. *n=M31;
  4236. r31make(n,a1);
  4237. (/*SFN*/C->_keys)=((T0*)n);
  4238. }
  4239. {T56*n=((T56*)malloc(sizeof(*n))/*12*/);
  4240. *n=M56;
  4241. r56make(n,a1);
  4242. (/*SFN*/C->_store)=((T0*)n);
  4243. }
  4244. (/*SFN*/C->_modulus)=(3)*(a1);
  4245. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4246. *n=M27;
  4247. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  4248. (/*SFN*/C->_buckets)=((T0*)n);
  4249. }
  4250. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4251. T2 b1=-(1);
  4252. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4253. }/*]*/
  4254. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4255. *n=M27;
  4256. r27make(n,a1);
  4257. (/*SFN*/C->_chain)=((T0*)n);
  4258. }
  4259. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4260. (/*SFN*/C->_first_free_slot)=_i;
  4261. while (!((_i)<(0)))
  4262. {
  4263. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  4264. /*]*/
  4265. _i=(_i)-(1);
  4266. }
  4267. (/*SFN*/C->_cache_keys_idx)=-(1);
  4268. (/*SFN*/C->_cache_user_idx)=-(1);
  4269. (/*SFN*/C->_count)=0;
  4270. }
  4271.  
  4272.  
  4273. void r55resize_buckets(T55* C,T2 a1){
  4274. T2 _i=0;
  4275. T2 _h=0;
  4276. (/*SFN*/C->_modulus)=a1;
  4277. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  4278. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4279. T2 b1=-(1);
  4280. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4281. }/*]*/
  4282. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  4283. {
  4284. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4285. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  4286. /*]*/
  4287. (/*SFN*/C->_first_free_slot)=_i;
  4288. }
  4289. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4290. while (!((_i)<(0)))
  4291. {
  4292. /*[IF*/
  4293. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  4294. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  4295. /*]*/
  4296. (/*SFN*/C->_first_free_slot)=_i;
  4297. }
  4298. else{
  4299. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  4300. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4301. /*]*/
  4302. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  4303. /*]*/
  4304. }
  4305. /*FI]*/
  4306. _i=(_i)-(1);
  4307. }
  4308. }
  4309.  
  4310.  
  4311. void r55expand(T55* C){
  4312. T2 _i=0;
  4313. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  4314. r55resize_buckets(C,((_i)*(2))*(3));
  4315. while (!((_i)==(0)))
  4316. {
  4317. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  4318. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4319. _i=(_i)-(1);
  4320. }
  4321. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4322. r56resize((T56*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4323. }
  4324.  
  4325.  
  4326. T0* r55at(T55* C,T0* a1){
  4327. T0* R=NULL;
  4328. /*[IF*/
  4329. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4330. (/*SFN*/C->_cache_user_idx)=-(1);
  4331. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4332. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  4333. {
  4334. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4335. }
  4336. }
  4337. /*FI]*/
  4338. R=/*(IRF4.6item*/((/*RF2*/((T56*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4339. return R;
  4340. }
  4341.  
  4342.  
  4343. void r55set_cache_user_idx(T55* C,T2 a1){
  4344. T2 _i=0;
  4345. /*[IF*/
  4346. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  4347. (/*SFN*/C->_cache_user_idx)=a1;
  4348. /*[IF*/
  4349. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  4350. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4351. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4352. {
  4353. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4354. }
  4355. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4356. }
  4357. else{
  4358. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4359. }
  4360. /*FI]*/
  4361. }
  4362.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  4363. (/*SFN*/C->_cache_user_idx)=a1;
  4364. /*[IF*/
  4365. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  4366. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  4367. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4368. {
  4369. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  4370. }
  4371. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4372. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  4373. {
  4374. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4375. }
  4376. }
  4377. else{
  4378. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4379. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  4380. {
  4381. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  4382. }
  4383. (/*SFN*/C->_cache_keys_idx)=_i;
  4384. }
  4385. /*FI]*/
  4386. }
  4387.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  4388. }
  4389.  else if((a1)==(1)){
  4390. (/*SFN*/C->_cache_user_idx)=1;
  4391. (/*SFN*/C->_cache_buckets_idx)=0;
  4392. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4393. {
  4394. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4395. }
  4396. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4397. }
  4398.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  4399. (/*SFN*/C->_cache_user_idx)=a1;
  4400. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  4401. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4402. {
  4403. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  4404. }
  4405. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4406. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  4407. {
  4408. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4409. }
  4410. }
  4411. else{
  4412. (/*SFN*/C->_cache_user_idx)=1;
  4413. (/*SFN*/C->_cache_buckets_idx)=0;
  4414. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4415. {
  4416. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4417. }
  4418. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4419. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  4420. {
  4421. r55set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  4422. }
  4423. }
  4424. /*FI]*/
  4425. }
  4426.  
  4427.  
  4428. void r55put(T55* C,T0* a1,T0* a2){
  4429. T2 _h=0;
  4430. /*[IF*/
  4431. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4432. (/*SFN*/C->_cache_user_idx)=-(1);
  4433. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4434. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  4435. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4436. {
  4437. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4438. }
  4439. /*[IF*/
  4440. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  4441. /*[IF*/
  4442. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  4443. r55expand(C);
  4444. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4445. }
  4446. /*FI]*/
  4447. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  4448. /*]*/
  4449. /*[IRF3.5put*/((/*RF2*/((T56*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  4450. /*]*/
  4451. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  4452. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4453. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4454. /*]*/
  4455. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  4456. /*]*/
  4457. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  4458. }
  4459. else{
  4460. /*[IRF3.5put*/((/*RF2*/((T56*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  4461. /*]*/
  4462. }
  4463. /*FI]*/
  4464. }
  4465. else{
  4466. /*[IRF3.5put*/((/*RF2*/((T56*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  4467. /*]*/
  4468. }
  4469. /*FI]*/
  4470. }
  4471.  
  4472.  
  4473. T6 r55has(T55* C,T0* a1){
  4474. T6 R=0;
  4475. /*[IF*/
  4476. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4477. (/*SFN*/C->_cache_user_idx)=-(1);
  4478. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4479. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4480. {
  4481. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4482. }
  4483. }
  4484. /*FI]*/
  4485. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  4486. return R;
  4487. }
  4488.  
  4489.  
  4490. T0* r55item(T55* C,T2 a1){
  4491. T0* R=NULL;
  4492. r55set_cache_user_idx(C,a1);
  4493. R=/*(IRF4.6item*/((/*RF2*/((T56*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4494. return R;
  4495. }
  4496.  
  4497.  
  4498. void r42with_capacity(T42* C,T2 a1){
  4499. T2 _i=0;
  4500. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  4501. *n=M31;
  4502. r31make(n,a1);
  4503. (/*SFN*/C->_keys)=((T0*)n);
  4504. }
  4505. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4506. *n=M27;
  4507. r27make(n,a1);
  4508. (/*SFN*/C->_store)=((T0*)n);
  4509. }
  4510. (/*SFN*/C->_modulus)=(3)*(a1);
  4511. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4512. *n=M27;
  4513. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  4514. (/*SFN*/C->_buckets)=((T0*)n);
  4515. }
  4516. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4517. T2 b1=-(1);
  4518. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4519. }/*]*/
  4520. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4521. *n=M27;
  4522. r27make(n,a1);
  4523. (/*SFN*/C->_chain)=((T0*)n);
  4524. }
  4525. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4526. (/*SFN*/C->_first_free_slot)=_i;
  4527. while (!((_i)<(0)))
  4528. {
  4529. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  4530. /*]*/
  4531. _i=(_i)-(1);
  4532. }
  4533. (/*SFN*/C->_cache_keys_idx)=-(1);
  4534. (/*SFN*/C->_cache_user_idx)=-(1);
  4535. (/*SFN*/C->_count)=0;
  4536. }
  4537.  
  4538.  
  4539. void r42resize_buckets(T42* C,T2 a1){
  4540. T2 _i=0;
  4541. T2 _h=0;
  4542. (/*SFN*/C->_modulus)=a1;
  4543. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  4544. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4545. T2 b1=-(1);
  4546. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4547. }/*]*/
  4548. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  4549. {
  4550. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4551. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  4552. /*]*/
  4553. (/*SFN*/C->_first_free_slot)=_i;
  4554. }
  4555. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4556. while (!((_i)<(0)))
  4557. {
  4558. /*[IF*/
  4559. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  4560. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  4561. /*]*/
  4562. (/*SFN*/C->_first_free_slot)=_i;
  4563. }
  4564. else{
  4565. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  4566. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4567. /*]*/
  4568. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  4569. /*]*/
  4570. }
  4571. /*FI]*/
  4572. _i=(_i)-(1);
  4573. }
  4574. }
  4575.  
  4576.  
  4577. void r42expand(T42* C){
  4578. T2 _i=0;
  4579. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  4580. r42resize_buckets(C,((_i)*(2))*(3));
  4581. while (!((_i)==(0)))
  4582. {
  4583. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  4584. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4585. _i=(_i)-(1);
  4586. }
  4587. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4588. r27resize((T27*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4589. }
  4590.  
  4591.  
  4592. T0* r42key(T42* C,T2 a1){
  4593. T0* R=NULL;
  4594. r42set_cache_user_idx(C,a1);
  4595. R=/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4596. return R;
  4597. }
  4598.  
  4599.  
  4600. T0* r42fast_key_at(T42* C,T2 a1){
  4601. T0* R=NULL;
  4602. T2 _i=0;
  4603. _i=1;
  4604. while (!((a1)==(r42item(C,_i))))
  4605. {
  4606. _i=(_i)+(1);
  4607. }
  4608. R=/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4609. return R;
  4610. }
  4611.  
  4612.  
  4613. T2 r42at(T42* C,T0* a1){
  4614. T2 R=0;
  4615. /*[IF*/
  4616. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4617. (/*SFN*/C->_cache_user_idx)=-(1);
  4618. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4619. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  4620. {
  4621. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4622. }
  4623. }
  4624. /*FI]*/
  4625. R=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4626. return R;
  4627. }
  4628.  
  4629.  
  4630. void r42set_cache_user_idx(T42* C,T2 a1){
  4631. T2 _i=0;
  4632. /*[IF*/
  4633. if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))+(1))){
  4634. (/*SFN*/C->_cache_user_idx)=a1;
  4635. /*[IF*/
  4636. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)){
  4637. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4638. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4639. {
  4640. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4641. }
  4642. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4643. }
  4644. else{
  4645. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4646. }
  4647. /*FI]*/
  4648. }
  4649.  else if((a1)==(((/*RF2*/(C)->_cache_user_idx/*28*/))-(1))){
  4650. (/*SFN*/C->_cache_user_idx)=a1;
  4651. /*[IF*/
  4652. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))==(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)){
  4653. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  4654. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4655. {
  4656. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  4657. }
  4658. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4659. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  4660. {
  4661. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4662. }
  4663. }
  4664. else{
  4665. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4666. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==((/*RF2*/(C)->_cache_keys_idx/*24*/))))
  4667. {
  4668. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/;
  4669. }
  4670. (/*SFN*/C->_cache_keys_idx)=_i;
  4671. }
  4672. /*FI]*/
  4673. }
  4674.  else if((a1)==((/*RF2*/(C)->_cache_user_idx/*28*/))){
  4675. }
  4676.  else if((a1)==(1)){
  4677. (/*SFN*/C->_cache_user_idx)=1;
  4678. (/*SFN*/C->_cache_buckets_idx)=0;
  4679. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4680. {
  4681. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4682. }
  4683. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4684. }
  4685.  else if((a1)==((/*RF2*/(C)->_count/*36*/))){
  4686. (/*SFN*/C->_cache_user_idx)=a1;
  4687. (/*SFN*/C->_cache_buckets_idx)=(/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_upper/*8*/);
  4688. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4689. {
  4690. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))-(1);
  4691. }
  4692. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4693. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)<(0)))
  4694. {
  4695. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4696. }
  4697. }
  4698. else{
  4699. (/*SFN*/C->_cache_user_idx)=1;
  4700. (/*SFN*/C->_cache_buckets_idx)=0;
  4701. while (!((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/)>=(0)))
  4702. {
  4703. (/*SFN*/C->_cache_buckets_idx)=((/*RF2*/(C)->_cache_buckets_idx/*32*/))+(1);
  4704. }
  4705. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_buckets_idx/*32*/)]/*)*/;
  4706. while (!(((/*RF2*/(C)->_cache_user_idx/*28*/))==(a1)))
  4707. {
  4708. r42set_cache_user_idx(C,((/*RF2*/(C)->_cache_user_idx/*28*/))+(1));
  4709. }
  4710. }
  4711. /*FI]*/
  4712. }
  4713.  
  4714.  
  4715. void r42put(T42* C,T2 a1,T0* a2){
  4716. T2 _h=0;
  4717. /*[IF*/
  4718. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4719. (/*SFN*/C->_cache_user_idx)=-(1);
  4720. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4721. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  4722. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4723. {
  4724. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4725. }
  4726. /*[IF*/
  4727. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  4728. /*[IF*/
  4729. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  4730. r42expand(C);
  4731. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4732. }
  4733. /*FI]*/
  4734. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  4735. /*]*/
  4736. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  4737. /*]*/
  4738. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  4739. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4740. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4741. /*]*/
  4742. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  4743. /*]*/
  4744. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*36*/))+(1);
  4745. }
  4746. else{
  4747. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  4748. /*]*/
  4749. }
  4750. /*FI]*/
  4751. }
  4752. else{
  4753. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  4754. /*]*/
  4755. }
  4756. /*FI]*/
  4757. }
  4758.  
  4759.  
  4760. T6 r42has(T42* C,T0* a1){
  4761. T6 R=0;
  4762. /*[IF*/
  4763. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4764. (/*SFN*/C->_cache_user_idx)=-(1);
  4765. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4766. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4767. {
  4768. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4769. }
  4770. }
  4771. /*FI]*/
  4772. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  4773. return R;
  4774. }
  4775.  
  4776.  
  4777. T2 r42item(T42* C,T2 a1){
  4778. T2 R=0;
  4779. r42set_cache_user_idx(C,a1);
  4780. R=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_store/*4*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4781. return R;
  4782. }
  4783.  
  4784.  
  4785. void r23with_capacity(T23* C,T2 a1){
  4786. T2 _i=0;
  4787. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  4788. *n=M31;
  4789. r31make(n,a1);
  4790. (/*SFN*/C->_keys)=((T0*)n);
  4791. }
  4792. {T31*n=((T31*)malloc(sizeof(*n))/*16*/);
  4793. *n=M31;
  4794. r31make(n,a1);
  4795. (/*SFN*/C->_store)=((T0*)n);
  4796. }
  4797. (/*SFN*/C->_modulus)=(3)*(a1);
  4798. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4799. *n=M27;
  4800. r27make(n,(/*RF2*/(C)->_modulus/*8*/));
  4801. (/*SFN*/C->_buckets)=((T0*)n);
  4802. }
  4803. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4804. T2 b1=-(1);
  4805. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4806. }/*]*/
  4807. {T27*n=((T27*)malloc(sizeof(*n))/*12*/);
  4808. *n=M27;
  4809. r27make(n,a1);
  4810. (/*SFN*/C->_chain)=((T0*)n);
  4811. }
  4812. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4813. (/*SFN*/C->_first_free_slot)=_i;
  4814. while (!((_i)<(0)))
  4815. {
  4816. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((_i)-(1));
  4817. /*]*/
  4818. _i=(_i)-(1);
  4819. }
  4820. (/*SFN*/C->_cache_keys_idx)=-(1);
  4821. (/*SFN*/C->_cache_user_idx)=-(1);
  4822. (/*SFN*/C->_count)=0;
  4823. }
  4824.  
  4825.  
  4826. void r23resize_buckets(T23* C,T2 a1){
  4827. T2 _i=0;
  4828. T2 _h=0;
  4829. (/*SFN*/C->_modulus)=a1;
  4830. r27resize((T27*)((/*RF2*/(C)->_buckets/*12*/)),a1);
  4831. /*[IRF3.6set_all_with*/{T27* C1=(T27*)((/*RF2*/(C)->_buckets/*12*/));
  4832. T2 b1=-(1);
  4833. r28set_all_with((/*RF2*/(C1)->_storage/*0*/),b1,(/*RF2*/(C1)->_upper/*8*/));
  4834. }/*]*/
  4835. while (!(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)))
  4836. {
  4837. _i=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4838. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(-(2));
  4839. /*]*/
  4840. (/*SFN*/C->_first_free_slot)=_i;
  4841. }
  4842. _i=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4843. while (!((_i)<(0)))
  4844. {
  4845. /*[IF*/
  4846. if((/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]/*)*/)==(-(2))){
  4847. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=((/*RF2*/(C)->_first_free_slot/*20*/));
  4848. /*]*/
  4849. (/*SFN*/C->_first_free_slot)=_i;
  4850. }
  4851. else{
  4852. _h=(r7hash_code((T7*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[_i]/*)*/)))%(a1);
  4853. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[_i]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4854. /*]*/
  4855. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=(_i);
  4856. /*]*/
  4857. }
  4858. /*FI]*/
  4859. _i=(_i)-(1);
  4860. }
  4861. }
  4862.  
  4863.  
  4864. void r23expand(T23* C){
  4865. T2 _i=0;
  4866. _i=/*(IRF4.6count*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_upper/*12*/))+(1)/*)*/;
  4867. r23resize_buckets(C,((_i)*(2))*(3));
  4868. while (!((_i)==(0)))
  4869. {
  4870. r27add_last((T27*)((/*RF2*/(C)->_chain/*16*/)),(/*RF2*/(C)->_first_free_slot/*20*/));
  4871. (/*SFN*/C->_first_free_slot)=(/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/);
  4872. _i=(_i)-(1);
  4873. }
  4874. r31resize((T31*)((/*RF2*/(C)->_keys/*0*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4875. r31resize((T31*)((/*RF2*/(C)->_store/*4*/)),/*(IRF4.6count*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_upper/*8*/))+(1)/*)*/);
  4876. }
  4877.  
  4878.  
  4879. T0* r23at(T23* C,T0* a1){
  4880. T0* R=NULL;
  4881. /*[IF*/
  4882. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4883. (/*SFN*/C->_cache_user_idx)=-(1);
  4884. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4885. while (!(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))
  4886. {
  4887. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4888. }
  4889. }
  4890. /*FI]*/
  4891. R=/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_store/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4892. return R;
  4893. }
  4894.  
  4895.  
  4896. void r23put(T23* C,T0* a1,T0* a2){
  4897. T2 _h=0;
  4898. /*[IF*/
  4899. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a2)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4900. (/*SFN*/C->_cache_user_idx)=-(1);
  4901. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4902. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/;
  4903. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a2),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4904. {
  4905. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4906. }
  4907. /*[IF*/
  4908. if(((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0)){
  4909. /*[IF*/
  4910. if(((/*RF2*/(C)->_first_free_slot/*20*/))<(0)){
  4911. r23expand(C);
  4912. _h=(r7hash_code(((T7*)a2)))%((/*RF2*/(C)->_modulus/*8*/));
  4913. }
  4914. /*FI]*/
  4915. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a2);
  4916. /*]*/
  4917. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_store/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]=(a1);
  4918. /*]*/
  4919. (/*SFN*/C->_cache_keys_idx)=(/*RF2*/(C)->_first_free_slot/*20*/);
  4920. (/*SFN*/C->_first_free_slot)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_first_free_slot/*20*/)]/*)*/;
  4921. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]/*)*/);
  4922. /*]*/
  4923. /*[IRF3.5put*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[_h]=((/*RF2*/(C)->_cache_keys_idx/*24*/));
  4924. /*]*/
  4925. (/*SFN*/C->_count)=((/*RF2*/(C)->_count/*32*/))+(1);
  4926. }
  4927. else{
  4928. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_store/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  4929. /*]*/
  4930. }
  4931. /*FI]*/
  4932. }
  4933. else{
  4934. /*[IRF3.5put*/((/*RF2*/((T31*)((/*RF2*/(C)->_store/*4*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]=(a1);
  4935. /*]*/
  4936. }
  4937. /*FI]*/
  4938. }
  4939.  
  4940.  
  4941. T6 r23has(T23* C,T0* a1){
  4942. T6 R=0;
  4943. /*[IF*/
  4944. if((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||((a1)!=((void*)(/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/)))){
  4945. (/*SFN*/C->_cache_user_idx)=-(1);
  4946. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_buckets/*12*/)))->_storage/*0*/))[(r7hash_code(((T7*)a1)))%((/*RF2*/(C)->_modulus/*8*/))]/*)*/;
  4947. while (!((((/*RF2*/(C)->_cache_keys_idx/*24*/))<(0))||(r7is_equal(((T7*)a1),/*(IRF4.6item*/((/*RF2*/((T31*)((/*RF2*/(C)->_keys/*0*/)))->_storage/*4*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/))))
  4948. {
  4949. (/*SFN*/C->_cache_keys_idx)=/*(IRF4.6item*/((/*RF2*/((T27*)((/*RF2*/(C)->_chain/*16*/)))->_storage/*0*/))[(/*RF2*/(C)->_cache_keys_idx/*24*/)]/*)*/;
  4950. }
  4951. }
  4952. /*FI]*/
  4953. R=((/*RF2*/(C)->_cache_keys_idx/*24*/))>=(0);
  4954. return R;
  4955. }
  4956.  
  4957.  
  4958. void r134compile_to_c_old(T134* C){
  4959. X104compile_to_c_old((/*RF2*/(C)->_target/*4*/));
  4960. /*[IF*/
  4961. /*AF*//*AE*/
  4962. /*FI]*/
  4963. }
  4964. T0*oBC13cpp=NULL;
  4965.  
  4966.  
  4967. T0* r134runnable_expression(T0* a1,T0* a2){
  4968. T0* R=NULL;
  4969. R=X104to_runnable(a1,a2);
  4970. /*[IF*/
  4971. if((R)==((void*)(NULL))){
  4972. {T68 se_tmp0;
  4973. r66add_position((*(se_tmp0=X104start_position(a1),&se_tmp0)));
  4974. }
  4975. r134fatal_error(((T0*)ms116_16290));
  4976. }
  4977. /*FI]*/
  4978. return R;
  4979. }
  4980.  
  4981.  
  4982. void r134run_feature_has_result(T134* C){
  4983. /*[IF*/
  4984. if((X334result_type((/*RF2*/(C)->_run_feature/*8*/)))==((void*)(NULL))){
  4985. {T68 se_tmp0;
  4986. r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*8*/)),&se_tmp0)));
  4987. }
  4988. r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  4989. r134fatal_error(((T0*)ms115_53215));
  4990. }
  4991. /*FI]*/
  4992. }
  4993.  
  4994.  
  4995. T2 r134static_value(T134* C){
  4996. T2 R=0;
  4997. /*[IF*/
  4998. if(X52is_boolean(X104result_type((/*RF2*/(C)->_target/*4*/)))){
  4999. /*[IF*/
  5000. if(X104is_static((/*RF2*/(C)->_target/*4*/))){
  5001. /*[IF*/
  5002. if((X104static_value((/*RF2*/(C)->_target/*4*/)))==(0)){
  5003. R=1;
  5004. }
  5005. /*FI]*/
  5006. }
  5007. /*FI]*/
  5008. }
  5009. /*FI]*/
  5010. return R;
  5011. }
  5012. T0*oBC13eh=NULL;
  5013.  
  5014.  
  5015. void r134run_feature_match(T134* C){
  5016. r134run_feature_has_result(C);
  5017. /*[IF*/
  5018. if((X334arguments((/*RF2*/(C)->_run_feature/*8*/)))!=((void*)(NULL))){
  5019. r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  5020. {T68 se_tmp0;
  5021. r66add_position((*(se_tmp0=X334start_position((/*RF2*/(C)->_run_feature/*8*/)),&se_tmp0)));
  5022. }
  5023. r134fatal_error(((T0*)ms132_50092));
  5024. }
  5025. /*FI]*/
  5026. }
  5027.  
  5028.  
  5029. T0* r134add_comment(T134* C,T0* a1){
  5030. T0* R=NULL;
  5031. /*[IF*/
  5032. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  5033. R=((T0*)(C));
  5034. }
  5035. else{
  5036. {T229*n=((T229*)malloc(sizeof(*n))/*12*/);
  5037. *n=M229;
  5038. r229make(n,(T0*)C,a1);
  5039. R=((T0*)n);
  5040. }
  5041. }
  5042. /*FI]*/
  5043. return R;
  5044. }
  5045.  
  5046.  
  5047. void r134with(T134* C,T0* a1,T0* a2,T0* a3){
  5048. (/*SFN*/C->_target)=a1;
  5049. (/*SFN*/C->_feature_name)=a2;
  5050. (/*SFN*/C->_run_feature)=a3;
  5051. r134run_feature_match(C);
  5052. }
  5053.  
  5054.  
  5055. void r134mapping_c_target(T134* C,T0* a1){
  5056. T0* _actual_type=NULL;
  5057. T6 _flag=0;
  5058. _flag=r325call_invariant_start(a1);
  5059. _actual_type=X52run_type(r134result_type(C));
  5060. /*[IF*/
  5061. if(X52is_reference(_actual_type)){
  5062. /*[IF*/
  5063. if(X52is_reference(a1)){
  5064. X52mapping_cast(a1);
  5065. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5066. T3 b1=((T3)'\50');
  5067. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5068. }/*]*/
  5069. /*]*/
  5070. r134compile_to_c(C);
  5071. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5072. T3 b1=((T3)'\51');
  5073. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5074. }/*]*/
  5075. /*]*/
  5076. }
  5077. else{
  5078. r134compile_to_c(C);
  5079. }
  5080. /*FI]*/
  5081. }
  5082. else{
  5083. /*[IF*/
  5084. if(X52is_reference(a1)){
  5085. r134compile_to_c(C);
  5086. }
  5087. else{
  5088. /*[IF*/
  5089. if(X52need_c_struct(a1)){
  5090. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5091. T3 b1=((T3)'\46');
  5092. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5093. }/*]*/
  5094. /*]*/
  5095. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5096. T3 b1=((T3)'\50');
  5097. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5098. }/*]*/
  5099. /*]*/
  5100. r134compile_to_c(C);
  5101. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5102. T3 b1=((T3)'\51');
  5103. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5104. }/*]*/
  5105. /*]*/
  5106. }
  5107. else{
  5108. r134compile_to_c(C);
  5109. }
  5110. /*FI]*/
  5111. }
  5112. /*FI]*/
  5113. }
  5114. /*FI]*/
  5115. /*[IF*/
  5116. if(_flag){
  5117. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
  5118. T3 b1=((T3)'\51');
  5119. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5120. }/*]*/
  5121. /*]*/
  5122. }
  5123. /*FI]*/
  5124. }
  5125.  
  5126.  
  5127. void r134afd_check(T134* C){
  5128. T0* _running=NULL;
  5129. T0* _rc=NULL;
  5130. /*[IF*/
  5131. if(((/*RF2*/(C)->_run_feature/*8*/))!=((void*)(NULL))){
  5132. _rc=X52run_class(X104result_type((/*RF2*/(C)->_target/*4*/)));
  5133. _running=(/*RF2*/(((T50*)_rc))->_running/*9*/);
  5134. /*[IF*/
  5135. if((_running)==((void*)(NULL))){
  5136. }
  5137.  else if((r53count(((T53*)_running)))>(1)){
  5138. r351update((/*RF2*/(C)->_target/*4*/),(/*RF2*/(C)->_run_feature/*8*/));
  5139. }
  5140. /*FI]*/
  5141. }
  5142. /*FI]*/
  5143. X104afd_check((/*RF2*/(C)->_target/*4*/));
  5144. /*[IF*/
  5145. /*AF*//*AE*/
  5146. /*FI]*/
  5147. }
  5148.  
  5149.  
  5150. void r134c_declare_for_old(T134* C){
  5151. X104c_declare_for_old((/*RF2*/(C)->_target/*4*/));
  5152. /*[IF*/
  5153. /*AF*//*AE*/
  5154. /*FI]*/
  5155. }
  5156.  
  5157.  
  5158. void r134collect_c_tmp(T134* C){
  5159. /*[IF*/
  5160. if(((/*RF2*/(C)->_run_feature/*8*/))!=((void*)(NULL))){
  5161. X334collect_c_tmp((/*RF2*/(C)->_run_feature/*8*/));
  5162. }
  5163. /*FI]*/
  5164. X104collect_c_tmp((/*RF2*/(C)->_target/*4*/));
  5165. /*[IF*/
  5166. /*AF*//*AE*/
  5167. /*FI]*/
  5168. }
  5169.  
  5170.  
  5171. T0* r134operator(void){
  5172. T0* R=NULL;
  5173. R=((T0*)ms15_1011);
  5174. return R;
  5175. }
  5176.  
  5177.  
  5178. T6 r134use_current(T134* C){
  5179. T6 R=0;
  5180. /*[IF*/
  5181. /*AF*//*AE*/
  5182. /*FI]*/
  5183. /*[IF*/
  5184. if(R){
  5185. }
  5186.  else if(X104is_current((/*RF2*/(C)->_target/*4*/))){
  5187. R=X334use_current((/*RF2*/(C)->_run_feature/*8*/));
  5188. }
  5189. else{
  5190. R=X104use_current((/*RF2*/(C)->_target/*4*/));
  5191. }
  5192. /*FI]*/
  5193. return R;
  5194. }
  5195.  
  5196.  
  5197. T0* r134to_runnable(T134* C,T0* a1){
  5198. T0* R=NULL;
  5199. T0* _rf=NULL;
  5200. T0* _t=NULL;
  5201. _t=r134runnable_expression((/*RF2*/(C)->_target/*4*/),a1);
  5202. _rf=r134run_feature_for(C,_t,a1);
  5203. /*[IF*/
  5204. if(((/*RF2*/(C)->_run_feature/*8*/))==((void*)(NULL))){
  5205. (/*SFN*/C->_target)=_t;
  5206. (/*SFN*/C->_run_feature)=_rf;
  5207. r134run_feature_match(C);
  5208. R=((T0*)(C));
  5209. }
  5210.  else if((_t)==((void*)((/*RF2*/(C)->_target/*4*/)))){
  5211. R=((T0*)(C));
  5212. }
  5213. else{
  5214. {T134*n=((T134*)malloc(sizeof(*n))/*16*/);
  5215. *n=M134;
  5216. r134with(n,_t,(/*RF2*/(C)->_feature_name/*12*/),_rf);
  5217. R=((T0*)n);
  5218. }
  5219. }
  5220. /*FI]*/
  5221. return R;
  5222. }
  5223.  
  5224.  
  5225. T2 r134to_integer(T134* C){
  5226. T2 R=0;
  5227. T0* _rf1=NULL;
  5228. _rf1=(/*RF2*/(C)->_run_feature/*8*/);
  5229. if(NULL!=(_rf1)){
  5230. switch(((T0*)_rf1)->id){
  5231. case 388:
  5232. break;
  5233. default:
  5234. _rf1=NULL;
  5235. }
  5236. }/*[IF*/
  5237. if((_rf1)==((void*)(NULL))){
  5238. r134error(/*(IRF4.6start_position*/(/*RF2*/(((T133*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/,((T0*)ms14_45441));
  5239. }
  5240. else{
  5241. R=X104to_integer((/*RF2*/(((T388*)_rf1))->_value/*28*/));
  5242. }
  5243. /*FI]*/
  5244. return R;
  5245. }
  5246.  
  5247.  
  5248. T6 r134is_static(T134* C){
  5249. T6 R=0;
  5250. /*[IF*/
  5251. if(X52is_boolean(X104result_type((/*RF2*/(C)->_target/*4*/)))){
  5252. /*[IF*/
  5253. if(X104is_static((/*RF2*/(C)->_target/*4*/))){
  5254. R=1;
  5255. }
  5256. /*FI]*/
  5257. }
  5258. /*FI]*/
  5259. return R;
  5260. }
  5261.  
  5262.  
  5263. void r134finalize(T134* C){
  5264. T0* _rf=NULL;
  5265. T0* _rc=NULL;
  5266. _rf=(/*RF2*/(C)->_run_feature/*8*/);
  5267. _rc=X52run_class(/*SSWARF2*//*X334current_type*/(/*RF2*/(((T368*)_rf))->_current_type/*8*/));
  5268. (/*SFN*/C->_run_feature)=r50dynamic((T50*)(/*(IRF4.6first*/((/*RF2*/((T53*)((/*RF2*/(((T50*)_rc))->_running/*9*/)))->_storage/*0*/))[0]/*)*/),_rf);
  5269. }
  5270.  
  5271.  
  5272. void r134error(T68 a1,T0* a2){
  5273. r66add_position(a1);
  5274. /*[IRF3.6append*/{T0* b1=a2;
  5275. r7append((T7*)(oBC66explanation),b1);
  5276. }/*]*/
  5277. r66print_as_error((T66*)(oBC13eh));
  5278. }
  5279.  
  5280.  
  5281. T0* r134result_type(T134* C){
  5282. T0* R=NULL;
  5283. R=X334result_type((/*RF2*/(C)->_run_feature/*8*/));
  5284. /*[IF*/
  5285. if(X52is_like_current(R)){
  5286. R=/*SSWARF2*//*X334current_type*/(/*RF2*/((T368*)((/*RF2*/(C)->_run_feature/*8*/)))->_current_type/*8*/);
  5287. }
  5288. /*FI]*/
  5289. return R;
  5290. }
  5291.  
  5292.  
  5293. T6 r134can_be_dropped(T134* C){
  5294. T6 R=0;
  5295. /*[IF*/
  5296. if(X104can_be_dropped((/*RF2*/(C)->_target/*4*/))){
  5297. R=X334can_be_dropped((/*RF2*/(C)->_run_feature/*8*/));
  5298. }
  5299. /*FI]*/
  5300. return R;
  5301. }
  5302. T0*oBC13small_eiffel=NULL;
  5303.  
  5304.  
  5305. T6 r134call_proc_call_stupid_switch(T134* C,T0* a1){
  5306. T6 R=0;
  5307. /*[IF*/
  5308. {/*AT*/R=1;
  5309. }
  5310. /*FI]*/
  5311. /*[IF*/
  5312. if(R){
  5313. /*[IF*/
  5314. if(X104is_current((/*RF2*/(C)->_target/*4*/))){
  5315. /*[IF*/
  5316. if(r49same_base_feature((/*RF2*/(C)->_run_feature/*8*/),a1)){
  5317. R=(X334stupid_switch((/*RF2*/(C)->_run_feature/*8*/),a1))!=((void*)(NULL));
  5318. }
  5319. else{
  5320. R=0;
  5321. }
  5322. /*FI]*/
  5323. }
  5324. else{
  5325. R=X104stupid_switch((/*RF2*/(C)->_target/*4*/),a1);
  5326. }
  5327. /*FI]*/
  5328. }
  5329. /*FI]*/
  5330. return R;
  5331. }
  5332.  
  5333.  
  5334. T0* r134run_feature_for(T134* C,T0* a1,T0* a2){
  5335. T0* R=NULL;
  5336. T0* _bc=NULL;
  5337. T0* _rt=NULL;
  5338. T0* _rc=NULL;
  5339. _rt=X104result_type(a1);
  5340. /*[IF*/
  5341. if((_rt)!=((void*)(NULL))){
  5342. _rc=X52run_class(_rt);
  5343. /*[IF*/
  5344. if((_rc)!=((void*)(NULL))){
  5345. _bc=r50base_class(((T50*)_rc));
  5346. R=r51run_feature_for(((T51*)_bc),_rc,a1,(/*RF2*/(C)->_feature_name/*12*/),a2);
  5347. }
  5348. /*FI]*/
  5349. }
  5350. /*FI]*/
  5351. /*[IF*/
  5352. if((R)==((void*)(NULL))){
  5353. r66add_position((/*RF2*/((T133*)((/*RF2*/(C)->_feature_name/*12*/)))->_start_position/*4*/));
  5354. /*[IRF3.6append*/{T0* b1=((T0*)ms116_39025);
  5355. r7append((T7*)(oBC66explanation),b1);
  5356. }/*]*/
  5357. r66print_as_fatal_error((T66*)(oBC13eh));
  5358. }
  5359. /*FI]*/
  5360. return R;
  5361. }
  5362. T351 oBC13switch_collection=0;
  5363.  
  5364.  
  5365. T0* r134static_result_base_class(T134* C){
  5366. T0* R=NULL;
  5367. T0* _cn=NULL;
  5368. T0* _rt=NULL;
  5369. T0* _e_feature=NULL;
  5370. T0* _bc=NULL;
  5371. _bc=X104static_result_base_class((/*RF2*/(C)->_target/*4*/));
  5372. /*[IF*/
  5373. if((_bc)!=((void*)(NULL))){
  5374. _e_feature=r51e_feature(((T51*)_bc),(/*RF2*/(C)->_feature_name/*12*/));
  5375. /*[IF*/
  5376. if((_e_feature)!=((void*)(NULL))){
  5377. _rt=X90result_type(_e_feature);
  5378. /*[IF*/
  5379. if((_rt)!=((void*)(NULL))){
  5380. _cn=X52static_base_class_name(_rt);
  5381. /*[IF*/
  5382. if((_cn)!=((void*)(NULL))){
  5383. R=r61base_class(((T61*)_cn));
  5384. }
  5385. /*FI]*/
  5386. }
  5387. /*FI]*/
  5388. }
  5389. /*FI]*/
  5390. }
  5391. /*FI]*/
  5392. return R;
  5393. }
  5394.  
  5395.  
  5396. void r134make(T134* C,T68 a1,T0* a2){
  5397. {T133*n=((T133*)malloc(sizeof(*n))/*20*/);
  5398. *n=M133;
  5399. r133make(n,r134operator(),a1);
  5400. (/*SFN*/C->_feature_name)=((T0*)n);
  5401. }
  5402. (/*SFN*/C->_target)=a2;
  5403. }
  5404.  
  5405.  
  5406. void r134fatal_error(T0* a1){
  5407. /*[IRF3.6append*/{T0* b1=a1;
  5408. r7append((T7*)(oBC66explanation),b1);
  5409. }/*]*/
  5410. r66print_as_fatal_error((T66*)(oBC13eh));
  5411. }
  5412. T0*oBC13run_control=NULL;
  5413.  
  5414.  
  5415. void r134assertion_check(T134* C,T3 a1){
  5416. /*[IF*/
  5417. if((a1)==(((T3)'R'))){
  5418. X334vape_check_from((/*RF2*/(C)->_run_feature/*8*/),/*(IRF4.6start_position*/(/*RF2*/(((T133*)((/*RF2*/(C)->_feature_name/*12*/))))->_start_position/*4*/)/*)*/);
  5419. }
  5420. /*FI]*/
  5421. X104assertion_check((/*RF2*/(C)->_target/*4*/),a1);
  5422. }
  5423.  
  5424.  
  5425. void r134compile_to_c(T134* C){
  5426. /*[IF*/
  5427. if((r47boost((T47*)(oBC13run_control)))&&(X52is_boolean(X52run_type(X104result_type((/*RF2*/(C)->_target/*4*/)))))){
  5428. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms134_146));
  5429. /*]*/
  5430. X104compile_to_c((/*RF2*/(C)->_target/*4*/));
  5431. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5432. T3 b1=((T3)'\51');
  5433. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5434. }/*]*/
  5435. /*]*/
  5436. }
  5437. else{
  5438. /*[IRF3.6call_proc_call_c2c*/{T134* C1=C;
  5439. r325put_cpc((T325*)(oBC13cpp),(T0*)C1);
  5440. }/*]*/
  5441. }
  5442. /*FI]*/
  5443. }
  5444.  
  5445.  
  5446. T6 r134stupid_switch(T134* C,T0* a1){
  5447. T6 R=0;
  5448. R=r134call_proc_call_stupid_switch(C,a1);
  5449. /*[IF*/
  5450. if(R){
  5451. R=!(X52is_native_array(r134result_type(C)));
  5452. }
  5453. /*FI]*/
  5454. return R;
  5455. }
  5456.  
  5457.  
  5458. T0* r146add_comment(T146* C,T0* a1){
  5459. T0* R=NULL;
  5460. /*[IF*/
  5461. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r44count(((T44*)((/*RF2*/(((T81*)a1))->_list/*8*/))))/*)*/)==(0))){
  5462. R=((T0*)(C));
  5463. }
  5464. else{
  5465. {T229*n=((T229*)malloc(sizeof(*n))/*12*/);
  5466. *n=M229;
  5467. r229make(n,(T0*)C,a1);
  5468. R=((T0*)n);
  5469. }
  5470. }
  5471. /*FI]*/
  5472. return R;
  5473. }
  5474. T0*oBC13once_routine_pool=NULL;
  5475.  
  5476.  
  5477. void r146mapping_c_target(T146* C,T0* a1){
  5478. T0* _rt=NULL;
  5479. T6 _flag=0;
  5480. _flag=r325call_invariant_start(a1);
  5481. _rt=X52run_type(r146result_type(C));
  5482. /*[IF*/
  5483. if(X52is_reference(_rt)){
  5484. /*[IF*/
  5485. if(X52is_reference(a1)){
  5486. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_492));
  5487. /*]*/
  5488. /*[IRF3.5put_integer*/r48put_integer(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),X52id(a1));
  5489. /*]*/
  5490. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),((T0*)ms14_166));
  5491. /*]*/
  5492. r146compile_to_c(C);
  5493. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5494. T3 b1=((T3)'\51');
  5495. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5496. }/*]*/
  5497. /*]*/
  5498. }
  5499. else{
  5500. r146compile_to_c(C);
  5501. }
  5502. /*FI]*/
  5503. }
  5504. else{
  5505. /*[IF*/
  5506. if(X52is_reference(a1)){
  5507. r146compile_to_c(C);
  5508. }
  5509. else{
  5510. /*[IF*/
  5511. if(X52need_c_struct(_rt)){
  5512. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5513. T3 b1=((T3)'\46');
  5514. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5515. }/*]*/
  5516. /*]*/
  5517. }
  5518. /*FI]*/
  5519. r146compile_to_c(C);
  5520. }
  5521. /*FI]*/
  5522. }
  5523. /*FI]*/
  5524. /*[IF*/
  5525. if(_flag){
  5526. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T48* C1=(T48*)(oBC325out_c);
  5527. T3 b1=((T3)'\51');
  5528. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5529. }/*]*/
  5530. /*]*/
  5531. }
  5532. /*FI]*/
  5533. }
  5534.  
  5535.  
  5536. T0* r146to_runnable(T146* C,T0* a1){
  5537. T0* R=NULL;
  5538. T0* _rt=NULL;
  5539. T0* _rf=NULL;
  5540. _rf=r49top_rf((T49*)(oBC13small_eiffel));
  5541. _rt=X334result_type(_rf);
  5542. /*[IF*/
  5543. if(((/*RF2*/(C)->_run_feature/*12*/))==((void*)(NULL))){
  5544. (/*SFN*/C->_run_feature)=_rf;
  5545. R=((T0*)(C));
  5546. }
  5547. else{
  5548. {T146*n=((T146*)malloc(sizeof(*n))/*16*/);
  5549. *n=M146;
  5550. /*[IRF3.3make*/((((T146*)(n)))->_start_position)=((/*RF2*/(C)->_start_position/*4*/));
  5551. /*]*/
  5552. R=((T0*)n);
  5553. }
  5554. R=r146to_runnable(((T146*)R),a1);
  5555. }
  5556. /*FI]*/
  5557. return R;
  5558. }
  5559.  
  5560.  
  5561. T2 r146to_integer(T146* C){
  5562. T2 R=0;
  5563. r146error((/*RF2*/(C)->_start_position/*4*/),((T0*)ms14_45441));
  5564. return R;
  5565. }
  5566.  
  5567.  
  5568. void r146error(T68 a1,T0* a2){
  5569. r66add_position(a1);
  5570. /*[IRF3.6append*/{T0* b1=a2;
  5571. r7append((T7*)(oBC66explanation),b1);
  5572. }/*]*/
  5573. r66print_as_error((T66*)(oBC13eh));
  5574. }
  5575.  
  5576.  
  5577. T0* r146result_type(T146* C){
  5578. T0* R=NULL;
  5579. R=X334result_type((/*RF2*/(C)->_run_feature/*12*/));
  5580. return R;
  5581. }
  5582.  
  5583.  
  5584. T0* r146static_result_base_class(void){
  5585. T0* R=NULL;
  5586. T0* _bcn=NULL;
  5587. T0* _rt=NULL;
  5588. T0* _e_feature=NULL;
  5589. T0* _rf=NULL;
  5590. _rf=r49top_rf((T49*)(oBC13small_eiffel));
  5591. _e_feature=/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)_rf))->_base_feature/*24*/);
  5592. _rt=X90result_type(_e_feature);
  5593. _bcn=X52static_base_class_name(_rt);
  5594. /*[IF*/
  5595. if((_bcn)!=((void*)(NULL))){
  5596. R=r61base_class(((T61*)_bcn));
  5597. }
  5598. /*FI]*/
  5599. return R;
  5600. }
  5601.  
  5602.  
  5603. void r146compile_to_c(T146* C){
  5604. /*[IF*/
  5605. if(X334is_once_function((/*RF2*/(C)->_run_feature/*12*/))){
  5606. /*[IRF3.6c_put_o_result*/{T0* b1=(/*RF2*/(C)->_run_feature/*12*/);
  5607. /*[IRF3.5put_string*/r48put_string(((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/))),r363o_result(/*SSWA2*//*X334base_feature*/(/*RF2*/(((T368*)b1))->_base_feature/*24*/)));
  5608. /*]*/
  5609. }/*]*/
  5610. }
  5611. else{
  5612. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T48* C1=((T48*)((/*RF2*/((T325*)(oBC13cpp))->_current_out/*63*/)));
  5613. T3 b1=((T3)'R');
  5614. putc(b1,((FILE*)((/*RF2*/(C1)->_output_stream/*4*/))));
  5615. }/*]*/
  5616. /*]*/
  5617. }
  5618. /*FI]*/
  5619. }
  5620.  
  5621.  
  5622. T6 r146stupid_switch(T146* C,T0* a1){
  5623. T6 R=0;
  5624. /*[IF*/
  5625. if(r49stupid_switch(r146result_type(C),a1)){
  5626. R=1;
  5627. }
  5628. /*FI]*/
  5629. return R;
  5630. }
  5631.  
  5632.